在Rebol和Red中,都有两个 PARSE 关键字:break
并且reject
具有相似的行为:跳出匹配循环(例如 any、some、while),不同之处在于break
总是指示 成功,而reject
指示 失败。我知道它的字面意思,但无法弄清楚应该使用这两个关键字中的哪一个的适当场景。
blk: [ 1 #[none] 2 #[none] #[none] 4 5 6 #[none] ]
count: 0
result: parse blk [
any [
remove none! insert 2
if ((count: count + 1) >= 2) break
|
skip
]
]
probe blk ;will get [1 0 2 0 none 4 5 6 none]
probe result ;will get false
probe count ;will get 2
在上面的代码中,要么 要么break
将reject
产生相同的结果。
所以任何人都可以告诉我这两个关键字有什么区别?