在Swift应用程序中,我有一个只接受+2和正无穷大之间的整数的函数。有没有办法在编译时强制执行此操作?
使用小代码示例更新:
要计算Fibonacci序列,我们至少需要两个数字,其他任何都是错误。在这里,我使用guard和一个可用的初始化程序在运行时验证这一点。
struct FibonacciSeed {
var magnitude = 2
init() { }
init?( magnitude: Int ) {
guard magnitude > 1 else { return nil }
self.magnitude = magnitude
}
var seed: [Int] {
// return valid seed ...
}
}
我很好奇是否有一些奇特的方法来帮助编译器在编译时强制执行此操作。就像编译器不让我编译一样:
var a:UInt = -8
答案 0 :(得分:2)
Swift中没有这样的功能。编译器在编译时无法知道应用程序在运行时传递给函数的值是什么。作为运行时功能,它只会使Swift运行时库更大。这将使应用程序更大,即使他们不使用特定功能。我非常确定Apple希望尽可能减少库。