1.as使用場合
(1)從派生類轉換基類,向上轉型。
class animal{}
class cat: animal{}
let cat = cat()
let animal = cat as animal
(2)消除二義性,數值型別轉換
let num1 = 42 as cgfloat
let num2 = 42 as int
let num3 = 42.5 as int
let num4 = (42/2) as double
(3)swift語句中進行模式匹配
switch animal
2.as!使用場合
向下轉型時使用。由於是強制型別轉換,如果轉換失敗會報runtime執行錯誤。
class animal()
class cat:animal
let animal:animal = cat()
let cat = animal as! cat
3.as?使用場合
as?和as!操作符的轉換規則完全一樣。但as?如果轉換不成功的時候便會返回乙個nil物件。成功的話返回可選型別值(optional),需要我們拆包使用。
由於as?在轉換失敗的時候也不會出現錯誤,所以對於如果能確保100%會成功的轉換則可使用as!,否則使用as?
let animal:animal = cat()
if let cat = animal as? catelse
OpenStack三種型別的NAT轉換
snat snat即源網路位址轉換,這個nat路由修改ip包包頭中的源ip位址。snat功能通常用於讓只具有私有ip位址的主機能夠訪問外網,比如,多個pc使用路由器共享上網,每個pc都配置了內網ip,pc訪問外部網路時,路由器將資料報報頭中的源位址替換成路由器的ip,當外部網路的伺服器,比如 web...
程序 三種型別,三種狀態
一 程序的概念 程序是執行乙個程式時所分配的資源,資源包括占用的cpu,記憶體等,是乙個動態執行過程。二 程序的組成 正文段使用者資料段 系統資料段 程序控制塊 pcb cpu暫存器值 堆疊 三 程序控制塊pcb 程序控制塊是系統用來控制和管理程序,獲得程序狀態和程序存在特徵的唯一標識。包括 程序標...
強制型別轉換操作符
操作符 中文名稱 含義 dynamic cast 動態型別轉換符 支援多型而存在,主要用於類之間的轉換 static cast 靜態型別轉換符 僅僅完成編譯時期的轉換檢查 reinterpret cast 再解釋型別轉換符 完成不同型別指標之間的相互轉換 const cast 常型別轉換符 用來修改...