RX0093

领域: 解析

错误消息

带默认值的参数之后出现必需参数:%s(%s)

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

小故事

你在声明一个函数,参数的顺序,有一个小规矩:必须给的参数,排在前面;可以省略的参数,也就是带默认值的,排在后面。想一想,调用的人,是从左到右,一个一个地给参数的。如果一个有默认值的参数,排在一个必需参数前面,那么,调用的人想用默认值,就没法跳过去,顺序就乱了。所以,fn f,括号里 a,逗号,b 冒号五,是合法的;而 a 冒号五,逗号,b,就不行。引擎在解析时拦住了你,并且告诉你,哪个必需的参数来得太晚,它跟在哪个有默认值的参数后面。怎么改?把必需的参数,挪到前面。记住:必须的在前,可选的在后。

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