自那以後,swift 社群一遍又一遍地反對這個決定,尤其是那些在 case 模式匹配以及 if/guard/for 語句中使用了 var 的人們。
今天,swift 團隊正式發表了一項宣告:
經過核心團隊對 se-0003 的討論,我們現在有了新的結論。正如其他主題中提到的那樣,這個提議有些不同尋常,因為它早於 swift 開源之前就被提了出來,因此並沒有經過充分的演化,也沒有開放給公眾去評審。
核心小組將這項提案分成幾個不同的小案例,每乙個都得出了不同的結論。至此我們已經清楚這並不是乙個非黑即白的主題,圍繞該主題存在很多相左的意見。這裡是核心小組給出的結論和一些理由:
引數列表中使用var
有下面幾個問題:
結論:核心小組最終決定從引數列表中移除var
和let
。引數列表中的var
是乙個快捷的語法糖,內部其實是定義了一些微小的樣板檔案(底層還是拷貝),然而,經過對開銷和收益比進行權衡還是不值得保留它。
if var
、for var
、if case var
等等都是使用了模式語法(又稱為「模式匹配」和 tspl 中的「解構」特性)(校者注:tspl,types and semantics for programming languages)(定稿注:tspl,程式語言中的型別與語義)。而當我們討論是否要從引數列表中移出該特性時,得到的意見很不統一:
結論:核心小組決定在模式匹配中保留var
和let
。
我們對 case 模式中是否禁止使用 var 繫結進行了額外的討論,即case .foo(var x)
:
結論:
消除註解允許使用者充分高效地在 swift 中繼續使用這一模式,但只是人為地將fixit
按鈕靜音,編譯器不會得到意外的行為。
-- swift 核心小組
最後總結一下,var 將從引數列表中移除,因為他會使開發者與 inout (注釋 1)混淆起來,但是在其他大部分使用cases
下還是保留 var。同時使用 var 繫結比使用 let 繫結更加簡潔。
今天早晨,世界各地的 swift 開發者都在慶祝。讓我們為 swift team 深思熟慮地重新審議舉杯致敬。
深度學習的2016 NIPS 2016速覽
nips nerual information processing systems 是人工智慧 機器學習領域的頂級學術會議,恰逢深度學習火熱,今年於12月7日召開的第30屆nips 2016會議更是快成為 盛會 了 2500多篇高質量 投稿,超過5000人的參會規模,andrew ng ian g...
寫給我的2016
回首過去的2015 2015年,總結上年計畫執行,做的不好主要有兩個原因,一是對計畫的堅持不夠好,二是定的目標太空泛。今年從定目標和堅持開始,給自己定時發郵件,做好計畫監督與執行,制定更加可行和具體的計畫。1 年後向老闆提出漲薪要求,最低目標18k,職務要有上公升,不然就準備換單位 單位沒換,薪酬沒...
你好,我的2016
選擇在2015年末的最後一天開啟這個部落格,有兩個原因。其一,希望記錄或者整理下自己即將所學的東西 其二,歲末年初,算是乙個新的開端吧。2015年,我畢業了,帶著一本畢業證 一箱行李 一段回憶,熾熱的七月,沿著綠蔭,走出校園。跨出大學,自此之後,學生這個身份與我再無相關。半年過去,時至今日,依然不適...