考虑这段代码:
OperatorTable addOperator(":", 2)
: := method(value,
list(self, value)
)
hash := "key": "value"
hash println
返回应该是list(key, value)
,并且在 Io REPL 中使用它时,这正是返回值。使用解释器时(如io somefile.io
),返回的值为value
。经过一番检查,区别就在这里:
# In the REPL
OperatorTable addOperator(":", 2)
message("k" : "v") # => "k" :("v")
# Via the Interpreter
OperatorTable addOperator(":", 2)
message("k" : "v") # => "k" : "v"
为什么会这样?