swift中一些特殊的语法
2015-12-30 本文已影响156人
Keep_FighterLS
最近在看swift写的一个播放器demo代码,顺便学习下swift。先把Demo放在下面,方便以后查找。
36kr原作者的Demo: VideoPlayer-网易播放器的风格十分类似Demo
看代码遇到不懂的查的几个blog,几个博主说的都很清晰。列在下面,方便记录。
Swift惰性初始化(lazy)属性
Swift中的willSet与didSet
Swift的Guard语句
Swift控制流: 如何理解 if let 与guard?
Swift之?和!
swift问题:
-
swift中的let和var什么区别?
“Use let to make a constant and var to make a variable.”
-----摘录来自: Apple Inc. “The Swift Programming Language”。 iBooks. -
?和!区别?
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
}
- as是做什么用的?as?和as!
as操作符用来把某个实例转型为另外的类型,由于实例转型可能失败,因此Swift为as操作符提供了两种形式:选项形式as?和强制形式as!
- willSet和didSet可以监听变量,非常有用的一个功能。参考博客:Swift中的willSet与didSet