Rebol 中的 IN 函数确定字段是否在对象中:
USAGE:
IN object word
DESCRIPTION:
Returns the word or block in the object's context.
IN is a native value.
ARGUMENTS:
object (any-object! block!)
word -- (modified if series) (any-word! block! paren!)
声称它适用于对象或块。如果我用一个对象尝试它,它可以正常工作:
>> in object [foo: 10 bar: 20] 'foo
== foo
但是,如果我只是用原始块尝试它,它会返回 NONE:
>> in [foo: 10 bar: 20] 'foo
== none
如果它不支持块,我想我会理解(Rebol2 不支持)。但是在什么情况下它不会返回允许块的 NONE 呢?
冒着将这两个问题合二为一的风险,接受 BLOCK 有什么意义!为word
参数?如果你有一组你正在寻找的单词,我认为它会占用一个块,但它似乎只是返回块:
>> in object [foo: 10 bar: 20] [mumble frotz bar]
== [mumble frotz bar]
>> in object [foo: 10 bar: 20] [mumble frotz]
== [mumble frotz]
并且冒着提出这三个问题的进一步风险,拿一个PAREN有什么意义!对于字有?