gpt4 book ai didi

swift - 找不到名为 Type 的枚举

转载 作者:可可西里 更新时间:2023-11-01 02:21:32 24 4
gpt4 key购买 nike

我有一个包含枚举的结构:

public struct TemperatureUnit : Unit
{
public enum Type
{
case Celsius
case Fahrenheit
}

public var type:Type

public init(type:Type)
{
self.type = type
}

public func getFormattedStringForValue(value:Int) -> String
{
if (self.type == .Celsius)
{
return "\(value) °C"
}
else
{
return "\(value)°"
}
}
}

当我尝试在代码的其他地方使用枚举时,编译器给我一个错误。该问题似乎与用于枚举的名称有关,因为当我重命名它时错误消失了。

枚举命名为类型的示例:

TemperatureUnit(type: TemperatureUnit.Type.Celsius) // Error

使用智能感知,TemperatureUnit 显示一个 Type 属性,该属性又具有一个 Type 属性 [...],并且这些 Type 属性都具有一个 Type 属性,不允许我访问我的实际枚举类型。

错误: 无法使用类型为“(类型:TemperatureUnit)”的参数列表为类型“TemperatureUnit”调用初始化程序

枚举名为 Kind 的工作示例:

TemperatureUnit(type: TemperatureUnit.Kind.Celsius)

有谁知道为什么名为 Type 的枚举不起作用?

编辑:

Type 是一个保留关键字,我们可以通过以下链接找到。 (Apple doc的信息在“关键字和标点符号”下)

最佳答案

Type 是 Swift 中的保留字。如果你想正确使用它,你需要在单词上使用反引号。所以声明你的枚举

public enum `Type` {
*stuff*
}

Kind 不是保留字,因此不会抛出错误。如果不正确转义保留字,则不能将其用作变量名。

关于swift - 找不到名为 Type 的枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30627744/

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