使用begininsideruby方法捕获错误
我在某个地方看到了这一点,但不知道您为什么需要使用begininsideruby方法捕获错误,ruby,Ruby,我在某个地方看到了这一点,但不知道您为什么需要begin这里: def some_method @ivar ||= begin if ... ... end end end 它是否有助于捕获错误或其他类型的错误?它的用途是什么?它似乎用于提供多个指令来设置@ivar。或者换一种说法,提供一个代码块来设置该值。它似乎用于提供多个指令来设置@ivar。或者换一种说法,提供一段代码来设置该值。这个习惯用法称为记忆化 @foo ||= s
begin
这里:
def some_method
@ivar ||= begin
if ...
...
end
end
end
它是否有助于捕获错误或其他类型的错误?它的用途是什么?它似乎用于提供多个指令来设置
@ivar
。或者换一种说法,提供一个代码块来设置该值。它似乎用于提供多个指令来设置@ivar
。或者换一种说法,提供一段代码来设置该值。这个习惯用法称为记忆化
@foo ||= some_expression
将@foo
设置为某些表达式的值(如果尚未设置)
现在,在ruby中,大多数东西都是一个表达式。包括begin。。结束
块。所以,是的,begin/end就是把几行代码组合成一个表达式。这个习惯用法叫做memoization
@foo ||= some_expression
将@foo
设置为某些表达式的值(如果尚未设置)
现在,在ruby中,大多数东西都是一个表达式。包括begin。。结束
块。因此,是的,begin/end只需将几行代码组合成一个表达式。不过,虽然它可以工作,但它可能是另一种需要更详细地编写的东西| |=begin
很尴尬。@theTinMan:是的,我通常这样做@foo | |=compute_foo
。但是有时候你可能不能有一个单独的方法。我理解|124;=
但是开始的时候是做什么的?尽管如此,当它起作用的时候,它可能是另一个应该写得更详细一点的东西| |=begin
很尴尬。@theTinMan:是的,我通常这样做@foo | |=compute_foo
。但是有时候你可能没有一个单独的方法。我知道|124;=
但是开始时是做什么的?