swift中變量聲明 var、let、?、??、!的使用,以及?和!的區別


感覺swift使用的人越來越多了,所以打算跟着潮流總結一點東西,不完善或者有錯誤的地方,請指出,共同進步

1.var 和 let的使用

  • var聲明的是變量,可以修改值(調用對象的set方法),舉例說明
  • let聲明的是常量,不可以修改值(不可調用對象的set方法),舉例說明
 var varA = 42
 varA = 43
 print(varA)//輸出43 

 

let varC = 36
 //varC = 46 報錯,因為let申明的就是常量,不能修改值
 print(varC)

 

2. ?的使用,如果對象沒有賦值,默認為nil,舉例說明  ??就是如果對象為nil,則使用后面的值代替,但是原變量不修改

var myString:String
print(myString)  //報錯,因為myString沒有賦值

 

var myString:String?
print(myString)  //輸出:nil

 

 var myString:String? = "myString"
  print(myString)  //輸出:myString

 

var myString:String?
var myString1 = myString ?? "BBBB";
print("myString1:\(myString1)    myString: \(myString)") // 輸出:myString1:BBBB    myString: nil

 3.!的使用,如果對象沒有賦值,直接使用,會報錯,可以使用!

var myString:String!
print(myString) //輸出:nil

 

var myString:String!
myString = "myString"
print(myString) //輸出:myString

4.?和!的區別,你會發現!和?在沒有賦值的情況下打印出來的值都是nil,如果使用?聲明的變量不賦值,直接調用對象的方法不執行,而使用!聲明的變量不賦值,直接調用對象的方法運行會報錯

var btn1: UIButton!
btn1.frame = CGRect.init(x: 10, y: 10, width: 10, height: 120);//報錯

 

var btn1: UIButton?
btn1?.frame = CGRect.init(x: 10, y: 10, width: 10, height: 120);//沒有報錯,這里不執行  btn1?這個問號必須加上,不然編譯之前就報錯了 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM