如何使用 swift 中的 if 语句检查枚举?
How can I check a enum using an if statement in swift?
今天我正在编写一个应用程序,需要将一些 Double
更正为一些重要的 figures/digits(sig fig)。用户可以设置编号。要转换为的信号图。我将这条信息存储在NSUserDefaults
.
我创建了一个枚举来表示这些设置,因为我想让我的代码更具可读性,而不仅仅是普通的旧整数。这是枚举:
enum SigFigOptions{
case No
case Yes(Int)
}
如果是.No
,数字就是准确的。如果是.Yes
,数字将被更正。并且sig fig的数量存储在关联值中。
然后我在枚举中创建了一个名为 correctTo
的方法。
func correctTo (i: Double) -> Double {
if self == .No {
}
}
写这个的时候看到语法错误,说是有歧义。所以我改成了:
if self == SigFigOptions.No
但是后来又说==
不能用在两种SigFigOptions
类型上。
真不懂!我知道我可以使用 switch
来做到这一点。但是我认为在很多情况下应该使用switch
。在这种情况下,我认为最好使用 if 语句来增强可读性。但我就是不能比较它们!
你能告诉我如何使用 if 语句比较枚举吗?
哦,顺便说一句,如果你知道将数字更正为某个 sig fig 的算法。请给我看看。
您可以使用模式绑定:if case .No = self { ... }
今天我正在编写一个应用程序,需要将一些 Double
更正为一些重要的 figures/digits(sig fig)。用户可以设置编号。要转换为的信号图。我将这条信息存储在NSUserDefaults
.
我创建了一个枚举来表示这些设置,因为我想让我的代码更具可读性,而不仅仅是普通的旧整数。这是枚举:
enum SigFigOptions{
case No
case Yes(Int)
}
如果是.No
,数字就是准确的。如果是.Yes
,数字将被更正。并且sig fig的数量存储在关联值中。
然后我在枚举中创建了一个名为 correctTo
的方法。
func correctTo (i: Double) -> Double {
if self == .No {
}
}
写这个的时候看到语法错误,说是有歧义。所以我改成了:
if self == SigFigOptions.No
但是后来又说==
不能用在两种SigFigOptions
类型上。
真不懂!我知道我可以使用 switch
来做到这一点。但是我认为在很多情况下应该使用switch
。在这种情况下,我认为最好使用 if 语句来增强可读性。但我就是不能比较它们!
你能告诉我如何使用 if 语句比较枚举吗?
哦,顺便说一句,如果你知道将数字更正为某个 sig fig 的算法。请给我看看。
您可以使用模式绑定:if case .No = self { ... }