参见英文答案 >
Compiler error when comparing values of enum type with associated values?2个
今天我正在编写一个应用程序,需要将一些双打更正为一些重要的数字/数字(sig fig).用户可以设置号码. sig fig转换为.我将这条信息存储在NSUserDefaults中.
今天我正在编写一个应用程序,需要将一些双打更正为一些重要的数字/数字(sig fig).用户可以设置号码. sig fig转换为.我将这条信息存储在NSUserDefaults中.
我创建了一个枚举来表示这些设置,因为我想让我的代码更具可读性,而不仅仅是普通的旧整数.这是枚举:
enum SigFigOptions{ case No case Yes(Int) }
如果是.No,数字将是准确的.如果是.是的,数字将被更正.并且sig fig的数量存储在相关值中.
然后我在枚举中创建了一个名为correctTo的方法.
func correctTo (i: Double) -> Double { if self == .No { } }
当我写这篇文章的时候,我看到有一个语法错误,说这是不明确的.所以我改成了:
if self == SigFigOptions.No
但后来它说= =不能在两个SigFigOptions类型上使用.
我真的不明白!我知道我可以使用开关来做到这一点.但是我认为在有很多情况时应该使用开关.在这种情况下,我认为最好使用if语句来增强可读性.但我无法比较它们!
你能告诉我如何使用if语句比较枚举吗?
哦顺便说一句,如果你知道算法来纠正一个数字到某个sig图.请好好向我展示.
您可以使用模式绑定:如果是大小写.No = self {…}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。