# 從基礎學習SWIFT CODE Part2 ## 使用array結合Dictionary - 宣告整數陣列與字串陣列,並以Dictionary來找尋資料,可從編譯後的結果發現,使用Dictionary找尋資料時,會一併的把字串中帶的值輸出(key:value)。  ※Dictionary的KEY為整數INT類型,另外的類型為字串(String) 建立簡單的Class: ---  - any:任何類型(anyObject:任何 class)。 - 圖中的陣列視為any類型,可直接宣告在array後面,並加上類any :[any](由於沒有特別給array名稱則swift自動給予 any類型)。 ## type Casting表示方式: #### ★改變標籤變成其他類型的標,或檢查是否可合法使用標籤 [is] [as?] [as!]  ▲(is)※藉由[is]標籤順便學習Bool判斷!- [is]確認類型→回傳布林 :檢查類型是否可被貼上某標籤,是否符合規範則回傳bool - 以圖為例藉由以is來變換標籤並可印出不同的內容。 - 以[is]標籤為例element皆為CustomStringConvertible。  ▲(as)type Casting表示方式 - [as?]嘗試轉型→回傳optional:使用問號替換標籤,失敗會回傳nil。 - 圖中可發現print先打印了Int類型標籤,最後的print轉為打印String類型標籤。 - 此程式藉由[as?]element已轉為該標籤,而不是CustomStringConvertible。  ▲Switch表示type Casting - 使用Switch進行轉換可不必在as與is加上!與?即可進行標籤轉換。 - 程式碼中的default為將所有的可能性打印出來。 - 此語法正是強制轉換的寫法即使失敗了,也不會跳出而是去執行下一行程式碼。 ## 簡單的釐清as!與as的用法:  ▲[as!]可發現let intarray = array as! [Int]發生了報錯 - 發生報錯是因為[any]=["abc",123]無法將陣列強制轉型,陣列中包含字串與整數變數,得無法作強制轉換,只要失敗則無法進行下一行的程式。 - [as!]強制轉型→回傳對應類型:告知轉型必定可以成功,則回傳對應成功類型,失敗時程式會當掉,並且無法做轉換。  ▲[as!]將let intarray = array as!註解或刪除即可進行轉換 - customStringConvertible是個可自訂呈現內容的寫法,要求為必須定義description而這邊我所使用的是自訂array 並強制轉換得最終可將不管是整數或是字串的陣列一併打印出來。  ▲[as?]以?的方式來進行標籤轉換 - 使用as!可將原本的array 的any類型轉換為整數[int]標籤之寫法,從編譯結果可發現無法將array全部轉為Int型態,因為陣列中有字串,得結果為nil。 - descriptionarray已轉型為customStringConvertible的array(成功傳型) - customStringConvertible是個可自訂呈現內容的寫法。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up