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?这个问号必须加上,不然编译之前就报错了 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值