このコードを考えてみましょう:
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"
なぜこうなった?