Swe*_*per 6 enums if-statement operators swift
今天我正在编写一个应用程序,需要将一些Doubles 更正为一些重要的数字/数字(sig fig).用户可以设置号码.sig fig转换为.我存储了这条信息NSUserDefaults.
我创建了一个枚举来表示这些设置,因为我想让我的代码更具可读性,而不仅仅是普通的旧整数.这是枚举:
enum SigFigOptions{
case No
case Yes(Int)
}
Run Code Online (Sandbox Code Playgroud)
如果是.No,那么数字就是准确的.如果是.Yes,则数字将被更正.并且sig fig的数量存储在相关值中.
然后我在enum中创建了一个名为的方法correctTo.
func correctTo (i: Double) -> Double {
if self == .No {
}
}
Run Code Online (Sandbox Code Playgroud)
当我写这篇文章的时候,我看到有一个语法错误,说这是不明确的.所以我改成了:
if self == SigFigOptions.No
Run Code Online (Sandbox Code Playgroud)
但后来它表示==不能用于两种SigFigOptions类型.
我真的不明白!我知道我可以使用a switch来做到这一点.但我认为switch应该在有很多案件时使用.在这种情况下,我认为最好使用if语句来增强可读性.但我无法比较它们!
你能告诉我如何使用if语句比较枚举吗?
哦顺便说一句,如果你知道算法来纠正一个数字到某个sig图.请好好向我展示.