Challenge Day23

Zoe Liauh
Jun 16, 2021

#100daysofswift #collection_types #array #dictionary #set

  • 集合型別 ( collection type ):和 Tuple 一樣可以儲存多個物件,不同的是,collection type 可以做更改,且可以永久儲存,swift 主要有三種集合物件:array, set, dictionary,以下會分別作介紹。
  • 先說明一下 array, set, dictionary 分別的差異:array 是一個有順序性的集合物件,set 和 dictionary 沒有順序性,set 是不可有重複的儲存值,dictionary 利用 key, value 儲存,所以 value 有相對應的 key,key 不可以重複,但 value 可以重複。
  • array : 利用 var 可以建立空集合、或建立有預設值的陣列、或是使用純值表示法建立陣列。array 表示法有:一般表示法:Array<String>,簡易表示法:[String],array 是一個有順序性的集合型別,故可以用索引方式取值,順序分別為:0, 1, 2, 3…。利用 for…in 抓取值,範例如截圖。
  • Set : 可以建立空 Set,或是使用純值表示法建立 Set。其內容順序不定且不會顯示重複。其資料型別表示方式只有一般表示法:Set<String>,若要建立 set 一定要明確宣吿。利用 for…in 抓取值,範例如截圖。set 可以利用 .sorted 轉換成有順序性的 array。
  • dictionary : 可以建立空 dictionary,或是使用純值表示法建立 Dictionary,dictionary 沒有順序性但由 key, value 兩種元素組合,特定的 key 會去對應到特定的 value,由於此特性,故如要修改 value,可以直接輸入 key = …,同理,若要新增,則要同時給予 key, value。表示法有兩種:一般表示法:Dictionary<key: Value>、簡易表示法:[Key: Value]。
  • 若要對 dictionary 取出值,則要相當小心,因為系統 default 取出的值是 optional type,需要強迫取值 ( force unwrapping )或是小心一點利用 if 判斷式取值,避免閃退。和 array, set 一樣,dictionary 也可以用 for…in 讀取每個值,也就是讀取每個 key, value,範例如截圖。
  • 這裡再提一下:set 可以做集合運算:交集、聯集、差集…

--

--