gpt4 book ai didi

swift - 枚举类的初始化和将TemperatureUnit.Kelvin分配给self(self = .Kelvin)的困惑

转载 作者:行者123 更新时间:2023-11-30 10:05:50 25 4
gpt4 key购买 nike

我正在阅读“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")

最佳答案

  1. self 指的是 init() 函数为您创建的枚举实例。
  2. init() 仅初始化枚举实例。只要您将 measuringUnit 声明为变量,您以后仍然可以更改枚举值。即 measuringUnit = .Celsius

关于swift - 枚举类的初始化和将TemperatureUnit.Kelvin分配给self(self = .Kelvin)的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36024388/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com