错误消息
消息中的 %s 表示引擎抛出错误时填入的具体内容。
小故事
你给一个名字赋了值,后来又想给它赋一个新值,引擎说,这个名字,是不可变的。什么意思?一个绑定,如果带着不可变的约束,值一落地,它的写入能力就被收走了。这个约束可以是你亲手写的,也可以是项目的语法模式替你写的:在低档模式下,所有没有标注的绑定,默认都是不可变的。以后再次绑定同名,引擎去替换那个单元的内容,被 fedex 拒绝了,因为没有写入的能力。拒绝是对的,只是以前,它被说成一个内置函数拒绝了调用,让人摸不着头脑,现在单独登记,一次告诉你三件事:哪个名字,它不可变,以及为什么。举个例子:先写 total 等于一,后面又写 total 等于二。怎么改?换一个新名字,或者在第一次绑定时,声明冒号可变。记住:不要去改规则,改你的写法。
文本来自 Rush 引擎的错误目录。
