我在某个地方看到了这个,但我真的不知道为什么你需要begin
:
def some_method
@ivar ||= begin
if ...
...
end
end
end
是否有助于发现错误或某种错误?它的目的是什么?
答案 0 :(得分:1)
它似乎用于提供多个指令来设置@ivar
。或者换句话说,提供一个代码块来设置该值。
答案 1 :(得分:1)
这个成语叫做memoization。
@foo ||= some_expression
如果@foo
尚未设置,则将some_expression
设置为值begin .. end
。
现在,在红宝石中,一切都是表达。包括<div [my-directive]="'any string...'"></div>
块。所以是的,开始/结束只是将几行代码分组到一个表达式中。