swift中一些特殊的語法

最近在看swift寫的一個(gè)播放器demo代碼,順便學(xué)習(xí)下swift。先把Demo放在下面,方便以后查找。

36kr原作者的Demo: VideoPlayer-網(wǎng)易播放器的風(fēng)格十分類似Demo


看代碼遇到不懂的查的幾個(gè)blog,幾個(gè)博主說的都很清晰。列在下面,方便記錄。

Swift惰性初始化(lazy)屬性
Swift中的willSet與didSet
Swift的Guard語句
Swift控制流: 如何理解 if let 與guard?
Swift之?和!


swift問題:
  1. swift中的let和var什么區(qū)別?

    “Use let to make a constant and var to make a variable.”
    -----摘錄來自: Apple Inc. “The Swift Programming Language”。 iBooks.

  2. ?和!區(qū)別?

var strValue : String? 在變量后面加?相當(dāng)于賦予一個(gè)初始值。
而!表示“我確定這里的的var一定是非nil的,盡情調(diào)用吧”,如果確定變量非nil,才可以使用,例如:

var stringValue : String?
//確定非nil,就可以使用
if (stringValue != nil)
{
  let hashValue = stringValue!.hashValue
}
//同樣可以使用optional banding ,代碼更加簡(jiǎn)潔
if let str=stringValue
{
  let hashValue = str.hashValue
}
  1. as是做什么用的?as?和as!

as操作符用來把某個(gè)實(shí)例轉(zhuǎn)型為另外的類型,由于實(shí)例轉(zhuǎn)型可能失敗,因此Swift為as操作符提供了兩種形式:選項(xiàng)形式as?和強(qiáng)制形式as!

  1. willSet和didSet可以監(jiān)聽變量,非常有用的一個(gè)功能。參考博客:Swift中的willSet與didSet

5.Swift中下劃線的妙用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容