RX0042

领域: 执行

错误消息

位于 %s 的条件不是真值(它是 %s)

消息中的 %s 表示引擎抛出错误时填入的具体内容。

小故事

假设你写了 if 零,然后引擎说,这个条件,不是真值。你可能觉得,零就是假呀。可是在 rush 里,不是。按规定,真值就是字符串 true 和 false,数字永远不被默认当成真假,想要数字也行,那要额外声明,那时才有假是零,真是一。别的语言可能就替你猜了:零是假,非空文本是真。可是猜,恰恰是危险的:if 零读作假,if 字符串 false 读作真,两个都说得通,也都是任意的,猜错了,就悄悄运行了错误的分支,输出的就是另一个程序的结果。所以引擎不猜,直接拒绝,并告诉你收到的是什么类型。怎么改?写一个真正产生真值的条件,比如一个比较,或者一个会返回真值的动词。记住:不要让引擎猜你的意思。

文本来自 Rush 引擎的错误目录。