我正在阅读“Swift 编程语言 2.1”并遇到以下代码。我只是想知道关键字“self
”指的是什么?当我创建TemperatureUnit的实例时,varmeasurementUnit=TemperatureUnit(symbol: "k")
,这将依次将.Kelvin
分配给self
,但这是否意味着 TemperatureUnit
枚举的这个特定实例仅存在 case Kelvin
?
摄氏温度和华氏温度将不再存在,至少对于这个 TemperautureUnit
实例来说,这是正确的吗?有人可以向我解释一下吗?
enum TemperatureUnit {
case Kelvin, Celsius, Fahrenheit
init?(symbol: Character){
switch symbol{
case "k":
self = .Kelvin
case "c":
self = .Celsius
case "f":
self = .Fahrenheit
default:
return nil
}
}
}
var measuringUnit = TemperatureUnit(symbol: "k")
最佳答案
self
指的是init()
函数为您创建的枚举实例。init()
仅初始化枚举实例。只要您将measuringUnit
声明为变量,您以后仍然可以更改枚举值。即measuringUnit = .Celsius
关于swift - 枚举类的初始化和将TemperatureUnit.Kelvin分配给self(self = .Kelvin)的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36024388/