色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

您好,歡迎來電子發燒友網! ,新用戶?[免費注冊]

您的位置:電子發燒友網>源碼下載>數值算法/人工智能>

Swift 2.2 的新特性介紹

大小:0.7 MB 人氣:0 2017-10-11 需要積分:1
導讀:本文來自SwiftGG翻譯組,作者@walkingway基于蘋果Swift官方博客中Ted Kremenek所撰寫的“Swift 2.2 Released!”文章進行了關于Swift 2.2新特性的介紹翻譯以及小試牛刀,Swift 2.2雖然是個小版本,但也有許多值得開發者注意的內容。
  Swift 2.2 隨著 iOS 9.3 一同閃亮登場,相較于 Swift 2.1, 2.2 版本做出了許多調整,從其調整方向上我們也能一窺 Swift 3.0 的影子,以下內容主要來自于蘋果 Swift 官方 Blog,接下來就讓我們進入正題,一睹 Swift 2.2 的廬山真面目:
  允許更多的關鍵字來做參數標簽
  SE-0001: Allow (most) keywords as argument labels
  參數標簽是 Swift 中非常 cool 的一個特性,我們可以這么寫:
  fori in1.stride(to: 9, by: 2) { print(i) }
  這個函數很簡單,由 1 開始,每次加 2,返回一系列的值,最后的結果要小于 9:
  1 3 5 7
  上面的函數如果參數前沒有 to 或 by 標簽,即 stride(9, 2) 那么代碼將失去自解釋性,別人也很難猜到這些參數的實際用途。
  又假設我們要獲取集合中某個值對應的索引,可以聲明如下方法:
  indexOf(value, in: collection)
  但是注意在 Swift 2.2 之前的版本,上面這種寫法 Xcode 會報錯,因為 in 是一個關鍵字,想要使用這些關鍵字必須加上單引號:
  indexOf(value, `in`: collection)
  以前我們定義新的 API 的時候,通常也要避免與這些關鍵字撞車,比如用 within 代替 in。在我們導入 Objective-C APIs 的時候通常會碰到這些問題:
  event.touchesMatching([.Began, .Moved], `in`: view) NSXPCInterface(`protocol`: SomeProtocolType.Protocol)
  而在 Swift 2.2,我們開放了除 inout, var 和 let 以外所有的關鍵字,現在他們都可以作為參數 label 來使用了(而不用加單引號)關于語法的影響主要注意以下三方面:
  1、函數調用中的關鍵字可以隨意使用了,不會產生什么歧義,因為方法調用時 “:” 總是伴隨著參數標簽出現。
  2、函數/子類化/初始化 聲明:除 inout, var 和 let 這三個關鍵字之外,使用其他關鍵字沒有什么歧義,因為這些關鍵字后面總是跟隨著 ‘:’ 或 ‘_’ 比如:
  func touchesMatching(phase: NSTouchPhase, inview: NSView?)-》Set《NSTouch》
  假如你想在函數聲明中使用 inout, var 和 let 做為參數名的話,還是要加單引號:
  func addParameter(name: String, `inout`: Bool)
  3、如果在函數類型中這三個關鍵字(inout,var,let)出現的話,是不需要加單引號的,這是因為在這種情況下參數名后總是跟著 ‘:’
  (NSTouchPhase, in: NSView?)-》Set《NSTouch》 (String, inout: Bool)-》Void
  元組對象可以進行比較操作了
  SE-0015: Tuple comparison operators
  元組是以逗號分割的值列表:
  letdeveloper = (“Numbbbbb”, “Shanks”) letdesigner = (“Cee”, “Sai”)
  以前想要比較兩個元組,我們需要自己重載操作符
  func == (t1: (T, T), t2: (T, T))-》Bool { returnt1.0== t2.0&& t1.1== t2.1}
  拋開每次都要寫這一坨無趣的代碼不說,而且只能比較包含兩個元素的元組。不過在 Swift 2.2 中,我們可以直接比較兩個元組了:
  letdeveloper = (“Numbbbbb”, “Shanks”) letdesigner = (“Cee”, “Sai”) ifdeveloper == designer { print(“Matching tuples!”) } else{ print(“Non-matching tuples!”) }
  Swift 2.2 允許不超過 6 個元素的元組之間進行比較,限制元組的元素個數主要有兩個原因:
  每一次比較都需要在基本庫中添加額外的代碼;元組的元素過多并不是一種好的編程風格,考慮用結構體代替。
  可以嘗試下面兩個元組比較:
  letdeveloper = (“Numbbbbb”, 23) letdesigner = (“Cee”, “Sai”)
  不出意外地報錯了:
  Swift 2.2 的新特性介紹
Swift 2.2 的新特性介紹

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

Swift 2.2 的新特性介紹下載

海量PCB软件教程下载 华强PCB技术中心,海量PCB软件教程下载!

相關電子資料下載

用戶評論

      ?
      主站蜘蛛池模板: 人人在线碰碰视频免费 | 久热人人综合人人九九精品视频 | 国产叼嘿久久精品久久 | 日本精品久久久久中文字幕 | 精品国产mmd在线观看 | ZZoo兽2皇 | 日本久久久久久久做爰片日本 | 亚洲国产成人精品无码区5566 | 菠萝视频高清版在线观看 | 青青草国产精品 | 0951影音在线 | 免费人成在线观看网站视频 | 亚洲爆乳少妇精品无码专区 | 做暖暖视频在线看片免费 | 好硬好湿好大再深一点动态图 | 美女岔开腿露出粉嫩花苞 | 色综合精品无码一区二区三区 | 国产精品视频国产永久视频 | 国产成人a在一区线观看高清 | 国产精品自产拍在线观看网站 | 欧美xx69| 亚洲地址一地址二地址三 | 青青草偷拍国产亚洲欧洲 | 亚洲激情网站 | 99精品欧美一区二区三区美图 | 5G年龄确认我已满18免费 | 波多野结衣二区 | 亚洲性无码AV久久成人 | 国产精品久久精品视 | 日本无码毛片久久久九色综合 | 最新亚洲中文字幕在线观看 | 97超碰射射射 | 男人大臿蕉香蕉大视频 | 国产午夜精品美女免费大片 | 亚洲色在线| 暗卫受被肉到失禁各种PLAY | 久久精品99热超碰 | 性生大片免费看 | 国产 精品 亚洲 欧美 高清 | 美女直播喷水 | 九九热这里只有精品视频免费 |