【发布时间】:2014-06-19 15:18:13
【问题描述】:
我正在尝试使用 Swift 中的枚举创建一个数学表达式。 该枚举可以是一个常量,具有一个 ComplexNumber 类型的关联值(一个简单的结构)。它也可以是具有递归关联值的平方根表达式。 例如,我希望能够将 sqrt(sqrt(1+2i)) 存储在枚举中。
enum Expression {
case Sqrt(Expression)
case Constant(ComplexNumber)
}
Xcode (6 beta 2) 立即崩溃。有什么问题? 根据我在 Swift 指南中读到的有关关联值的内容,这应该可行。
【问题讨论】:
-
它还没有实现。这就是我得到的:
error: unimplemented IR generation feature recursive enum layout -
Xcode 不应崩溃。但我怀疑递归枚举是不可能的。枚举是值类型,具有关联值的枚举类似于 C 联合。我假设它们必须具有在编译时已知的大小。
-
只是好奇你为什么是 Sqrt() 表达式枚举类型本身?
-
@TheLazyChap 我认为他们想创建一个公式解释器或类似的东西,一个表达式是一个计算,而 sqrt 是一个计算本身。
标签: math recursion enums swift