对于值类型来说,let声明的对象,值不能改变
let i = 100
i = 200
这样则会报错
而var声明的对象值则可以改变
var j = 100
j = 200
对于引用类型来说,let声明的引用类型的对象的值也是不能改变么
我们可以测试一下
class student {
var name:String
init(name:String){
self.name = name
}
func setName(name:String){
self.name = name
}
}
var j = student(name: "wang")
j.setName("wangwang")
let i = student(name: "zhang")
i.setName("zhangzhang")
无论是var声明的对象还是let声明的对象都可以实现改名操作
那么let这个不变限制在哪呢
j = student(name:"x")
i = student(name:"x")
当他们指向别的对象时,var声明的对象可以,let声明的对象则不行。