我不明白是什么设置一个变量!正在做,因为我的印象是这“解包”一个可选的值。我想通过这样做,你是保证有一个值,以解开在该变量,这就是为什么在IBActions等,你看到它使用。
所以简单地说,什么是被初始化的变量,当你做这样的事情:
var aShape : CAShapeLayer!
为什么/我什么时候这样做?
在类型声明中!是类似于?两者都是可选的,但是!是一个“ implicitly unwrapped” optional,意味着你不必解开它访问的值(但它仍然可以是nil)。这基本上是我们已经在objective-c中的行为。一个值可以是nil,你必须检查它,但你也可以直接访问该值,如果它不是一个可选的(重要的区别,如果你不检查nil,你会得到一个运行时错误)
// Cannot be nilvar x: Int = 1// The type here is not "Int",it's "Optional Int"var y: Int? = 2// The type here is "Implicitly Unwrapped Optional Int"var z: Int! = 3
用法:
// you can add x and zx + z == 4// ...but not x and y,because y needs to be unwrappedx + y // error// to add x and y you need to do:x + y!// but you *should* do this:if let y_val = y { x + y_val}总结
以上是内存溢出为你收集整理的Swift带有“?”(问号)和“!”(感叹号)的变量装饰,全部内容,希望文章能够帮你解决Swift带有“?”(问号)和“!”(感叹号)的变量装饰,所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)