如何在编译时迅速使用#error引发错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在编译时迅速使用#error引发错误相关的知识,希望对你有一定的参考价值。

我想在编译时在条件中抛出错误。但是#error立即引发错误。

这是我尝试过的:

var number: Int = 10 
if number < 20 {
   #error("the number is smaller than 20")

}

但是这不起作用!

答案

如@Sulthan在上面的评论中所述:

变量在编译时没有值。它仅在运行时具有值。这意味着您不能使用编译检查

因此,您试图实现的目标是不可能的。#if#elseif #endif等...是预处理器标志,可以测试的条件非常有限(例如,预处理器宏(如DEBUG)或函数(如os()arch()))。因此,在编译之前无法检查变量。

以上是关于如何在编译时迅速使用#error引发错误的主要内容,如果未能解决你的问题,请参考以下文章

双向链表 - 是啥导致我的代码引发编译器错误,我该如何解决?

为啥代码片段在 matplotlib 2.0.2 上运行良好,但在 matplotlib 2.1.0 上引发错误

使用前向声明时如何修复“字段类型不完整”错误

错误:这个片段内部类应该是静态的 [ValidFragment]

当我使用标头时,C++ 函数会引发错误,但如果我在源代码中定义它则不会?

如何从片段 KOTLIN 中调用意图 [重复]