Swift初级入门【步步为营】
菜鳥向前看。。。。。。
來八一八swift的那些事了
啦啦啦啦啦啦啦,快來打我呀,我就是這么強大,啦啦啦啦啦啦啦啦啦啦啦
目錄
1、swift中let和var的區別
2、swift中的lazy
3、Swift中的注釋
1、swift中let和var的區別
let和var的區別在于對象的內存地址可不可以改變
let代表不可變對象,即對象首地址不能發生改變,也就是說內存地址不能改變;
var代表可變對象,即內存地址可以發生改變,可以修飾指針重新指向的變量;
舉例:
let strB:String = "我是B"
strB = "我是新來的B" ? 這個時候Xcode會提示報錯
Expected 'var' keyword in property declaration?
Insert 'var '
Invalid redeclaration of 'strB'
因為let修飾的變量不能改變指針指向,故這時候Xcode提示你用var
var strB:String = "我是B"
strB = "我是新來的B" ?完美展示不會報錯
再來看看下面這個
let arrayM: NSMutableArray = NSMutableArray()
arrayM.add("我是A") ?Xcode為什么沒有報錯???
let可以修飾可變對象,數組arrayM的內存地址并沒有發生改變,也就是數組arrayM的指針沒有重新指向
2、swift中的lazy
swift中我們在變量屬性前加lazy關鍵字來指定延遲加載,最主要的作用就是提升性能
所謂延遲加載就是在第一次訪問某個屬性時,要判斷這個屬性是否初始化,如果已經初始化則直接返回,如果沒有初始化則進行初始化。這樣可以把這個屬性延遲初始化,把它和包含它的對象初始化分隔開,從而達到提升性能的目的。
延遲加載是初始化時很常用的性能優化方式,尤其是在一些對象的屬性比較復雜時候,默認全部初始化會耗費不少時間,從而影響性能;還有一些在特定場景才能使用到的對象,更是浪費資源。所以有些時候我們并不會立刻用到一個對象或者一個對象的所有屬性,使用延遲加載可以提升性能。示例代碼如下:
private lazy var _titleLabel: UILabel = {
? ? ? ? let titleL = UILabel.init()
? ? ? ? titleL.text = "Hello World"
? ? ? ? return titleL
}()
關于Lazy的拓展:Lazy可以配合map、filter這類接受閉包運行的方法一起,使整個行為變成延遲執行,舉個例子吧
正常情況下:
? ? ? ? ?let numbers = 1...5
? ? ? ? let doubleNumbers = numbers.map { (i:Int) -> Int in
? ? ? ? ? ? print("numbers:\(i)")
? ? ? ? ? ? return i*2
? ? ? ? }
? ? ? ? for i in doubleNumbers{
? ? ? ? ? ? print("doubleNumbers:\(i)")
? ? ? ? }
輸出結果:
numbers:1
numbers:2
numbers:3
numbers:4
numbers:5
doubleNumbers:2
doubleNumbers:4
doubleNumbers:6
doubleNumbers:8
doubleNumbers:10
添加Lazy關鍵字:
? ? ? ? ?let numbers = 1...5
? ? ? ? let doubleNumbers = numbers.lazy.map { (i:Int) -> Int in
? ? ? ? ? ? print("numbers:\(i)")
? ? ? ? ? ? return i*2
? ? ? ? }
? ? ? ? for i in doubleNumbers{
? ? ? ? ? ? print("doubleNumbers:\(i)")
? ? ? ? }
輸出結果:
numbers:1
doubleNumbers:2
numbers:2
doubleNumbers:4
numbers:3
doubleNumbers:6
numbers:4
doubleNumbers:8
numbers:5
doubleNumbers:10
對于一些不需要完全運行或者提前退出的情況,使用lazy進行性能優化更加有效
3、Swift中的注釋
分組注釋
OC中 #pragma mark====== 你要寫的注釋Swift中 //MARK: -你要寫的注釋?
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Swift初级入门【步步为营】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网络相关之TCP(有趣的对话)
- 下一篇: 本地仓库管理权限问题