在Swift初始化程序中分配给常量

Sam*_*yes 5 constants ios swift

在我的Ball.swift文件中,我声明了以下变量:

let r:Double = 0
Run Code Online (Sandbox Code Playgroud)

现在我有以下初始化程序:

init(x:Double, y:Double, radius:Double) {
    self.r = radius
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Cannot assign to 'r' in 'self'
Run Code Online (Sandbox Code Playgroud)

但是,在Apple的Swift文档中,他们说:

只要在初始化完成时将其设置为确定值,就可以在初始化期间的任何时刻为常量属性赋值.

我不明白.这不应该工作吗?我在网上搜索了很多,但找不到任何东西.我只想把它变成一个变量,但我觉得这样会放弃.:)

ABa*_*ith 5

您需要声明r没有初始值,如下所示:

let r: Double
Run Code Online (Sandbox Code Playgroud)

从Swift 1.2开始,常量只能分配一次.如果你给它一个默认值,你不能给它另一个值init.