第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...