我用多种方式来表示某些州的神奇价值。
使用let
,如:
class A { let FOO = 42 }
但这不是一个类变量,所以我不确定多个实例对内存的影响。另一个问题是根据前面的常量初始化以下常量将返回编译器错误:
class A {
let FOO = 42
let BAR = FOO / 2 // Compiler Error
}
使用结构,让我很好地包装常量:
class A { struct Constants { static let FLAG = 42 } }
但是我的代码用Constants
前缀乱扔垃圾。我也相信这是使用早期Swift版本中的static
关键字的一种解决方法。它还合适吗?
在声明中直接使用static
可能吗?当Swift 2或3开始支持它时:
class A { static let FOO = 42 }
我要离开enum
,因为我需要常量来返回Int
个值,而enum
s会经常让我与rawValue
一起玩。< / p>
然后我必须在常量中加上类名,当我将代码重构为函数中硬编码的类名的其他类时,重构会很痛苦。
您建议使用哪种方法来确定使用哪种方法?