swift中一些特殊的语法

最近在看swift写的一个播放器demo代码,顺便学习下swift。先把Demo放在下面,方便以后查找。

36kr原作者的Demo: VideoPlayer-网易播放器的风格十分类似Demo


看代码遇到不懂的查的几个blog,几个博主说的都很清晰。列在下面,方便记录。

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


swift问题:
  1. swift中的let和var什么区别?

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

  2. ?和!区别?

var strValue : String? 在变量后面加?相当于赋予一个初始值。
而!表示“我确定这里的的var一定是非nil的,尽情调用吧”,如果确定变量非nil,才可以使用,例如:

var stringValue : String?
//确定非nil,就可以使用
if (stringValue != nil)
{
  let hashValue = stringValue!.hashValue
}
//同样可以使用optional banding ,代码更加简洁
if let str=stringValue
{
  let hashValue = str.hashValue
}
  1. as是做什么用的?as?和as!

as操作符用来把某个实例转型为另外的类型,由于实例转型可能失败,因此Swift为as操作符提供了两种形式:选项形式as?和强制形式as!

  1. willSet和didSet可以监听变量,非常有用的一个功能。参考博客:Swift中的willSet与didSet

5.Swift中下划线的妙用

你可能感兴趣的:(swift中一些特殊的语法)