【发布时间】:2021-04-20 02:24:20
【问题描述】:
有没有办法使用条件赋值运算符 (||=) 从返回多个值的函数中赋值给特定值?
例如,我经常看到这种模式:
def foo
'hello'
end
def bar
@bar ||= foo
end
如果foo 返回单个值,这将非常有用。如果 foo 返回两个值,而我只想将 bar 分配给第一个值呢?
def foo
return 'hello', 'world'
end
def bar
@bar ||= foo
end
# How to set bar = 'hello' ?
有没有办法有条件地只分配给返回的第一个值?如果不是 - 将bar 实例变量设置为“hello”的惯用方式是什么?
(已编辑:在第二个示例中修复了 foo 中的错字——忘记显式返回。)
【问题讨论】:
-
"如果 foo 返回两个值怎么办" 它没有。请参阅stackoverflow.com/questions/28725500/… 以了解您自己的代码。
-
@bar ||= foo.first -
@matt 感谢您发现这个错字 -- 已编辑更正。
标签: ruby list methods variable-assignment