iOS開發 Swift 總結30 型別轉換

2021-08-29 16:25:58 字數 1550 閱讀 7882

第2部分 故事的高階要素 - 程式語言swift的高階部分

18 型別轉換

18.1 概念通俗講解

型別轉換就是轉換當前常量,變數,例項的型別。例如int型別轉換為string

18.2 定義簡潔介紹

下面介紹4個常用的使用場景

1).普通資料轉換 - 用構造方法

例如int轉換為string,**如下

let age =

10string

(age)

2).類的例項,把子類轉換為父類的型別時(向上轉換),這是***的轉換,用as。(這裡寫as!和as?也是可以的,編譯器不報錯)

使用as,編譯器認為它一定會轉換成功,當不確定強制轉換是否成功時,使用as?,會返回乙個可選值,如果無法進行強制轉換,該值將為nil。as!是強行轉換,如果轉換不成功,程式閃退。示例如下

class

person

class

man:

person

let xiaowang =

man(

)xiaowang as

person

//使用as? 把xiaowang轉換為person型別

iflet xiaowang = xiaowang as

?person

3).類的例項,把父類轉換為子類的型別時(向下轉換),這不是***的轉換,用as?或as!。(這裡寫as編譯器會報錯)。示例如下

class

person

class

man:

person

let xiaowang:

person

=dog()

//編譯器報錯

xiaowang as

man//沒問題

xiaowang as

!man

//使用as? 把xiaowang轉換為man型別

iflet xiaowang = xiaowang as

?man

4).當資料型別是any或anyobject型別,需要轉為乙個具體的型別時(向下轉換),用as?或as!。(這裡寫as編譯器會報錯)。示例如下

class

manclass

woman

let xiaowang =

man(

)let xiaoli =

woman()

let data:

[any]=

[xiaowang, xiaoli]

for item in data

}

18.3 我的經驗總結

1).一般資料型別的轉換用構造方法的方式來轉換。無法用as的方式,as的方式只能用於轉換any或anyobject。

2).能用as都可以用as!或as?。但向下轉化的場景,能用as!或as?的不能用as。

3).實際開發中,可以用as的話,只用as。只能用as?或as!的話,不用as!,只用as?。

iOS開發 Swift 總結18 函式

第2部分 故事的高階要素 程式語言swift的高階部分 6 函式 6.1 概念通俗講解 函式主要目的是把一段 塊封裝起來。然後為函式取乙個函式名,想執行這段 時,呼叫這個函式名即可。6.2 定義簡潔介紹以及經驗總結 1 定義的格式 func 函式名舉例,定義函式checkage。func check...

iOS開發 Swift 總結13 if 控制流

第2部分 故事的高階要素 程式語言swift的高階部分 1 if 控制流 1.1 概念通俗講解 if控制流通俗來講就是判斷條件為真時,執行一段 1.2 定義簡潔介紹 1 if 語句 if 判斷條件舉例,有乙個變數age,如果age大於5時,我們讓age等於5,如下。var age 10if age ...

IOS開發幾何類方法總結

cggeometry.h檔案是用c語言實現的乙個封裝了許多常用幾何方法的檔案。struct cgpoint 定義乙個點,設定x座標和y座標 struct cgsize 定義乙個尺寸,設定寬度和高度 struct cgvector 定義乙個二維向量 struct cgrect 定義乙個矩形 const...