我目前正在练习Swift语言iBook的例子.我对"让"的理解是我们用"让"来形成一个常数.一旦我们为它赋值,我们就不能再为它分配另一个值.像下面的代码:
let city="NY"
city="LA" <--error (Cannot assign 'let' value city)
Run Code Online (Sandbox Code Playgroud)
但我在iBook上看到了这个让我困惑的例子:
struct Color{
let red=0.0, green=0.0, blue=0.0 //<---declare variables using "let" and assign value
init(red:Double,green:Double,blue:Double){
self.red=red //<---assign value to variable again?
self.green=green
self.blue=blue
}
}
Run Code Online (Sandbox Code Playgroud)
在此示例中,它已将值分配给使用"let"的红色,绿色和蓝色.
为什么我们可以在init中再次为这三个变量赋值?
Kev*_*vin 11
let如果您没有在构造函数中自己初始化它们,则初始化将提供默认值.构造函数(init)很特别.在它们内部,您可以分配一个常量实例变量.实际上,如果您没有默认值,则必须为其分配.(这也适用于课程.)
感谢Qwerty Bob在文档中找到了这个
初始化期间修改常量属性
您可以在初始化期间的任何时刻修改常量属性的值,只要在初始化完成时将其设置为确定值即可.
摘录自:Apple Inc."The Swift Programming Language."iBooks.https://itun.es/us/jEUH0.l
您可以在init过程中使用self关键字之前设置常量变量.在此之后,他们真正'恒定'.
您必须在使用self关键字之前执行此操作,就像将其传递给另一个对象一样,它可以依次调用依赖于该常量属性的您的方法