Swift4.0新特性(下)

Swift的180個(gè)介紹

  • 一、新增一個(gè)swapAt方法

  • for example(可以很方便的互換兩個(gè)元素)

var numbers = [1,2,3,4,5,6]
print(numbers)  // [1,2,3,4,5,6]
numbers.swapAt(2, 5)
print(numbers)  // [1, 2, 6, 4, 5, 3]
swap(&numbers[0], &numbers[1])
print(numbers)  // [2, 1, 6, 4, 5, 3]
打印效果.png

  • 二七问、SE-0148使用泛型下標(biāo)操作符

  • 正常情況下

struct JSON {
      private var data: [String: Any]
      init(data: [String: Any]) {
          self.data = data
      }
      subscript(key: String) -> Any? {
          return data[key]
      }
}
let json = JSON(data: [
        "name": "MG明明",
        "age": 43
    ])
let name: String? = json["name"] as? String  // "MG明明"
let age: Int? = json["age"] as? Int          // 43
  • 修改泛型

struct JSON {
      private var data: [String: Any]
      init(data: [String: Any]) {
          self.data = data
      }
      subscript <T>(key: String) -> T? {
          return data[key] as? T
      }
}
let json = JSON(data: [
        "name": "MG明明",
        "age": 43
    ])
let name: String? = json["name"]   // "MG明明"
let age: Int? = json["age"]        // 43

  • 三师枣、#SE-0156 Subtype existential
protocol P {}
struct S : P {}
class C : P {}
class D { }
let t: AnyObject & P = S() // Compiler error: S is not of class type
let u: AnyObject & P = C() // Compiles successfully
let v: P & AnyObject = C() // Compiles successfully
let w: P & AnyObject = D() // Compiler error: class D does not conform to protocol P
protocol P {}
class C {}
class D : C { }
class E : C { }
class F : D, P { }
let t: C & D & P = F() // Okay: F is a subclass of D and conforms to P
let u: D & P = t       // Okay: D & P is equivalent to C & D & P
let v: C & D & P = u   // Okay: C & D & P is equivalent to D & P
let w: D & E & P       // Compiler error: D is not a subclass of E or vice-versa


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末皂岔,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌捺弦,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件孝扛,死亡現(xiàn)場(chǎng)離奇詭異列吼,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)苦始,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)寞钥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人陌选,你說(shuō)我怎么就攤上這事理郑。” “怎么了咨油?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵您炉,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我役电,道長(zhǎng)赚爵,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任法瑟,我火速辦了婚禮囱晴,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘瓢谢。我一直安慰自己畸写,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布氓扛。 她就那樣靜靜地躺著枯芬,像睡著了一般论笔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上千所,一...
    開(kāi)封第一講書(shū)人閱讀 51,488評(píng)論 1 302
  • 那天狂魔,我揣著相機(jī)與錄音,去河邊找鬼淫痰。 笑死最楷,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的待错。 我是一名探鬼主播籽孙,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼火俄!你這毒婦竟也來(lái)了犯建?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤瓜客,失蹤者是張志新(化名)和其女友劉穎适瓦,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體谱仪,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡玻熙,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了疯攒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嗦随。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖卸例,靈堂內(nèi)的尸體忽然破棺而出称杨,到底是詐尸還是另有隱情肌毅,我是刑警寧澤筷转,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站悬而,受9級(jí)特大地震影響呜舒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜笨奠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一袭蝗、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧般婆,春花似錦到腥、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)配名。三九已至,卻和暖如春晋辆,著一層夾襖步出監(jiān)牢的瞬間渠脉,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工瓶佳, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留芋膘,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓霸饲,卻偏偏與公主長(zhǎng)得像为朋,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子贴彼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Swift 4是蘋(píng)果計(jì)劃于2017年秋季推出的最新版本潜腻,其主要重點(diǎn)是提供與Swift 3代碼的源兼容性,并努力實(shí)現(xiàn)...
    Lewis海閱讀 8,574評(píng)論 7 18
  • Swift 4是蘋(píng)果最新推出的一次語(yǔ)言升級(jí)器仗,計(jì)劃在2017年秋發(fā)布測(cè)試版融涣。它的主要目標(biāo)是提供與Swift 3的源代...
    山天大畜閱讀 2,813評(píng)論 0 2
  • 本篇文章翻譯自:What’s New in Swift 3?原作者:Ben Morrow on June 15, ...
    matrix_lab閱讀 1,692評(píng)論 4 9
  • 最新在寫(xiě)swift的時(shí)候感覺(jué)不怎么順手,于是把新特性看了一遍精钮,順便做一下筆記威鹿,加深一下記憶。 1轨香、語(yǔ)法改進(jìn) ext...
    傍觀(guān)者閱讀 530評(píng)論 0 1
  • #1.添加Codable協(xié)議忽你,方便自定義數(shù)據(jù)類(lèi)型序列化#2.添加定義多行字符串語(yǔ)法#3.改進(jìn)key-value c...
    愛(ài)抽煙的芭比閱讀 32,621評(píng)論 8 38