我在操场上运行这些代码,但出现编译错误
a.b.b = 3
但它在下一行运行良好。这两者有什么区别?我什么时候应该使用“!” 明确的,什么时候不需要?
以下是代码:
class A {
var a = 1
var b = B()
}
class B {
var b = 2
}
var a:A! = A()
a.b.b = 3 // will get a compile error
print(a.b.b) // runs well, print 2
a?.b.b = 3 // runs well
print(a.b.b) // runs well, print 3