首页 > 试题广场 >

Swift 1.0 or later view1声明成var

[问答题]

Swift 1.0 or later

view1声明成var类型,view2声明let类型。这里有什么区别吗?下面的最后一行代码能编译吗?

1
2
3
4
5
6
7
import UIKit
var view1 = UIView()
view1.alpha = 0.5
let view2 = UIView()
view2.alpha = 0.5 // Will this line compile?
推荐

view1是个变量可以重新赋值给一个新的实例化的UIView对象。使用let你只赋值一次,所以下面的代码是不能编译的:

1
view2 = view1 // Error: view2 is immutable

但是UIView是一个引用类型的类,所以你可以改变view2的属性,也就是说最后一行代码是可以编译的:

1
2
let view2 = UIView()
view2.alpha = 0.5 // Yes!
发表于 2018-07-12 20:38:38 回复(0)