Ruby 中具有多个 return 值的函数的条件赋值?
Conditional assignment from a function with multiple return values in Ruby?
有没有办法使用条件赋值运算符 (||=) 从具有多个值的函数中分配特定值?
例如,我经常看到这种模式:
def foo
'hello'
end
def bar
@bar ||= foo
end
如果 foo
return 是单个值,这将非常有用。如果 foo return 有两个值,而我只想将 bar 分配给第一个值呢?
def foo
return 'hello', 'world'
end
def bar
@bar ||= foo
end
# How to set bar = 'hello' ?
是否有某种方法可以有条件地仅分配给第一个值 returned?如果不是——将 bar
实例变量设置为 'hello' 的惯用方法是什么?
(已编辑:修复了第二个示例中 foo 中的拼写错误——忘记明确 return。)
Ruby 不支持多个 return 值。它只是 returning 列表的语法糖。因此,以下工作。
@bar ||= foo[0]
有没有办法使用条件赋值运算符 (||=) 从具有多个值的函数中分配特定值?
例如,我经常看到这种模式:
def foo
'hello'
end
def bar
@bar ||= foo
end
如果 foo
return 是单个值,这将非常有用。如果 foo return 有两个值,而我只想将 bar 分配给第一个值呢?
def foo
return 'hello', 'world'
end
def bar
@bar ||= foo
end
# How to set bar = 'hello' ?
是否有某种方法可以有条件地仅分配给第一个值 returned?如果不是——将 bar
实例变量设置为 'hello' 的惯用方法是什么?
(已编辑:修复了第二个示例中 foo 中的拼写错误——忘记明确 return。)
Ruby 不支持多个 return 值。它只是 returning 列表的语法糖。因此,以下工作。
@bar ||= foo[0]