swift相關

CoderSunYu發表於2017-12-13

一、問號和歎號的理解

"!"表示這個可選變數存在,可以使用,如果用"!"訪問不存在的可選變數會導致一些錯誤

"?"表示這個變數可能不存在,如果不存在,"?"所在語句後面的內容都不會執行

!是一個強制拆包,告訴編譯器我絕對肯定程式碼能夠執行, 如: strValue!.hashValue ,如果不能執行則報錯。

?是表示一個不確定,strValue?.hashValue 就等於OC的if(strValue){ [strValue hashValue]; } 有就執行,有沒後面程式碼就不執行。 不會報錯。

二、swift和oc的區別

1、Swift沒有地址和指標的概念

2、Swift對資料型別要求極為嚴謹

3、泛型,泛型程式碼能寫出更加靈活清晰、可重複使用的函式

三、泛型的意義和作用

型別的引數化,就是可以把型別像方法的引數那樣傳遞。這一點意義非凡。

泛型使編譯器可以在編譯期間對型別進行檢查以提高型別安全,減少執行時由於物件型別不匹配引發的異常。