我正在尝试使用Io语言的运算符。在cli中一切正常,但是一旦我将代码放入文件中,我就会遇到问题。
这是一个很小的例子(创建一个与+完全相同的运算符+++)
OperatorTable addOperator("+++", 3) # Say that +++ should be an operator
Number +++ := method(v, call target + v) # Define the slot +++ on numbers
(30 +++ 40) println # Try it out!
如上所述,这在cli中工作正常,但是当我尝试在文件中运行它时不起作用。我认为它与文件已经预先确定,在定义运算符之前的事实有关,但我将如何解决这个问题?
答案 0 :(得分:4)
这是Io中操作员洗牌的限制。结果大致如下:
不幸的是,在你已经运行后,你正在操纵操作员洗牌。