程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> Object-C---)Swift之(九)延遲存儲屬性

Object-C---)Swift之(九)延遲存儲屬性

編輯:關於C語言

Object-C---)Swift之(九)延遲存儲屬性


最近流行這個,先來一枚

Swift引入了一種新的機制–延遲存儲屬性機制,在第一次被調用時才會被計算初始值的屬性,聲明時需要使用lazy修飾符。
注意:定義屬性時一定得是變量(var),常量是無法使用延遲存儲機制。

什麼時候用到延遲存儲?

當某個實例持有另一個創建成本較大的實例的引用時,使用延遲存儲可以降低內存開銷,從而提升性能。

 class Bird
 {
 var name:String
 var age:Int
 init(age:Int)
 {
  self.name="鳥類"
  NSThread.sleepForTimeInterval(2)
  self.age=age
 }
 }
 class  Ostrich
 {
   var name:String=""
   var age=Bird(age:3)
 }
 var ostrich=Ostrich()
 ostrich.name="鴕鳥"
 print(ostrich.name)

運行上面的代碼,我們明顯發現延遲了兩秒才打印出來 鴕鳥 很明顯我們根本就沒有關心Ostrich的age屬性,所以這兩秒鐘的等待是沒有必要的,所以我們可以考慮在代碼中改下

  lazy var age=Bird(age:3)

這樣在沒有調用age的話不會進行創建Bird實例,從而性能得到提升。沒有延遲兩秒的等待。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved