我想在编译时在条件中抛出错误。但是#error
立即引发错误。
这是我尝试过的:
var number: Int = 10
if number < 20 {
#error("the number is smaller than 20")
}
但是这不起作用!
如@Sulthan在上面的评论中所述:
变量在编译时没有值。它仅在运行时具有值。这意味着您不能使用编译检查
因此,您试图实现的目标是不可能的。#if
#elseif
#endif
等...是预处理器标志,可以测试的条件非常有限(例如,预处理器宏(如DEBUG)或函数(如os()arch()))。因此,在编译之前无法检查变量。