ber*_*kes 15 ruby arrays shorthand
我有以下内容:
foo ||= []
foo << "bar"
Run Code Online (Sandbox Code Playgroud)
而且我相信这可以在一行中完成,我无法找到.
重要的是,foo可能存在,也可能不存在.如果存在则它始终是一个Array,如果它不存在,它必须成为一个数组并获得一个附加到它的变量.
gle*_*ald 45
像这样:
(foo ||= []) << "bar"
Run Code Online (Sandbox Code Playgroud)
带括号的位返回(foo
如果它已经存在),或者如果它不存在则返回,然后<<
附加到它.
如果您只想添加尚未定义的"bar"
时间:foo
foo ||= ["bar"]
Run Code Online (Sandbox Code Playgroud)
如果你想添加"bar"
,无论是否foo
已经存在:
(defined? foo) ? foo << "bar" : foo = ["bar"]
Run Code Online (Sandbox Code Playgroud)
然而,对于后一种情况,我个人更喜欢原始代码的编写方式。当然可以用一行完成,但我认为两行实现更具可读性。