swift4.0 元組

元組是swift編程語言中唯一的一種復(fù)合類型质欲,他可以將指定有限個數(shù)的任何類型一次整理為一個對象,元組中的每一種類型都可以是任何的結(jié)構(gòu)體肝匆、枚舉或類類型懂讯,甚至也可以是一個元組以及空元組。元組中的每個元素我們稱為一個“分量”

eg:
      enum MyEnum {
            case one, two, three
      }
 
      class MyClass {
            var member = 0
      }”

第一節(jié):訪問元組中的元素

如果我們要訪問元組中的元素伐厌,可以使用成員訪問操作符 . 承绸,后面跟元素的索引位置(從0開始計)

eg:
      //聲明一個元組常量tuple,類型為(Int, Double, Bool)
      let tuple = (10, 0.5, false) 

      //訪問元組中的第一個元素
      //這里的常量a的值為10
      let a = tuple.0

我們也可以給元組指定標(biāo)簽挣轨,通過訪問標(biāo)簽來訪問元素

eg:
      //聲明一個元組常量tuple,其類型為:(int:  Int, double: Double,bool: Bool)
     let tuple = (int: 10, double: 0.5, bool: false)
    
      //訪問元組中的第一個元素
      //這里的常量a的值為10
      let a = tuple.int

注意: 一旦一個元組的某個元素帶上標(biāo)簽军熏,那么該元組類型相應(yīng)的位置上也必須加上標(biāo)簽,一個元組中不需要給所有的元素都加上標(biāo)簽卷扮,可以加一部分荡澎,指定標(biāo)簽的元素,我們可以通過索引位置訪問也可以通過標(biāo)簽訪問; 元組往往用于一個函數(shù)返回多個不同類型的對象的場合晤锹。

第二節(jié):元組分解

我們能很容易的定義一個元組對象摩幔,我們也可以很容易的同時萃取一個元組中的相應(yīng)元素,這也被稱為元組分解鞭铆。
我們在做元組分解時或衡,將幾個變量或常量以元組定的方式聲明出來,然后=右邊元組相應(yīng)的元素就能賦值給=左邊相應(yīng)的變量或常量了衔彻。

eg:
      // 聲明一個元組常量tuple
      let tuple = (10, 0.5, true)

      //這里同時聲明三個常量:a, b, c
      //tuple的第一個元素對 a 初始化薇宠,b, c同理
      let (a, b, c) = tuple

       // 如果我們不想萃取元組中的某個元素,用_代替
       // a的值為:5.5艰额, c的值為:false
       let(a, _, c) = (5.5, "hello", false)

       // 因為元組分解這一語法特性澄港,可以通過元組字面量來交換兩個對象的值
       // 定義 a和b兩個Int類型對象
       var a = 1, b = 2
       // 交換兩個對象的值,a = 2柄沮, b = 1
       (a, b) = (b, a)

注意:上面代碼 let (a, b, c) 不是在聲明元組回梧,而是同時聲明三個常量废岂,用于萃取一個元組中的值,元組也可以看作一個對象狱意,上面的tuple就是名副其實的一個元組對象

第三節(jié):元組比較

兩個相同元素類型的元組湖苞,如果每個元素都遵循了Equatable協(xié)議,那么這兩個元組可以用==, !=操作符來判斷兩者是否相等详囤,如果兩個元組中的每個元素的值對應(yīng)都相等财骨,則這兩個元組對象相等,否則不等藏姐。

eg:
       let t1 = (1, 2, 3)
       let t2 = (1, 2, 3)
       //判斷元組 t1和t2 是否相等隆箩,結(jié)果為:true
       print("t1 == t2? \(t1 == t2)")

如果每個元素都遵循Comparable協(xié)議,那么這兩個元組可以用<, <=, >, >=操作符來比較羔杨,從第一個元素開始比較捌臊,有結(jié)果立即返回結(jié)果,否則依次進(jìn)行比較下去兜材。

eg:
       let t3 = (6, 9, 3, 4)
       let t4 = (6, 2, 5, 8)
       //判斷元組 t3和t4 是否為小于關(guān)系理澎,結(jié)果為:false
       //因為t3的第二個元素大于t4的第二個元素
       print("t3 < t4? \(t3 < t4)")

注意:這里t1和t3比較,會直接報錯曙寡,因為不屬于同一個類型

eg:
       let t5 = (true, 9, 3, 4)
       let t6 = (false, 2, 5, 8)
       這里的t5和t6比較也會報錯糠爬,雖然元組類型一樣,因為Bool類型不遵循comparable協(xié)議
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末卵皂,一起剝皮案震驚了整個濱河市秩铆,隨后出現(xiàn)的幾起案子砚亭,更是在濱河造成了極大的恐慌灯变,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捅膘,死亡現(xiàn)場離奇詭異添祸,居然都是意外死亡,警方通過查閱死者的電腦和手機寻仗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進(jìn)店門刃泌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人署尤,你說我怎么就攤上這事耙替。” “怎么了曹体?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵俗扇,是天一觀的道長。 經(jīng)常有香客問我箕别,道長铜幽,這世上最難降的妖魔是什么滞谢? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮除抛,結(jié)果婚禮上狮杨,老公的妹妹穿的比我還像新娘。我一直安慰自己到忽,他們只是感情好橄教,可當(dāng)我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著喘漏,像睡著了一般颤陶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上陷遮,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天滓走,我揣著相機與錄音,去河邊找鬼帽馋。 笑死搅方,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的绽族。 我是一名探鬼主播姨涡,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼吧慢!你這毒婦竟也來了涛漂?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤检诗,失蹤者是張志新(化名)和其女友劉穎匈仗,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體逢慌,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡悠轩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了攻泼。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片火架。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖忙菠,靈堂內(nèi)的尸體忽然破棺而出何鸡,到底是詐尸還是另有隱情,我是刑警寧澤牛欢,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布骡男,位于F島的核電站,受9級特大地震影響氢惋,放射性物質(zhì)發(fā)生泄漏洞翩。R本人自食惡果不足惜稽犁,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望骚亿。 院中可真熱鬧已亥,春花似錦、人聲如沸来屠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽俱笛。三九已至捆姜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間迎膜,已是汗流浹背泥技。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留磕仅,地道東北人珊豹。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像榕订,于是被迫代替她去往敵國和親店茶。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,490評論 2 348

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