【发布时间】:2015-04-27 18:29:25
【问题描述】:
对于从数组中给定的变量赋值:
a,b,c,d,e = [ "foo","bar","discard","discard","blah" ]
有没有办法只分配a、b 和e 并丢弃c 和d?在 perl (Perl assignment with a dummy placeholder) 中是否有 undef。
【问题讨论】:
标签: ruby
对于从数组中给定的变量赋值:
a,b,c,d,e = [ "foo","bar","discard","discard","blah" ]
有没有办法只分配a、b 和e 并丢弃c 和d?在 perl (Perl assignment with a dummy placeholder) 中是否有 undef。
【问题讨论】:
标签: ruby
是的。
a,b,_,_,e = [ "foo","bar","discard","discard","blah" ]
【讨论】:
a,b,undefined,undefined,e ?
_ 只是另一个变量名。它通常用于表示未使用的变量(例如,当您需要提供一个带有您不需要的参数的块时)。
_ 不会导致未使用变量的警告(在启用警告的情况下运行时;ruby -w)
a,b,*c,e = ["foo", "bar", "discard", "discard", "blah" ]、c #=> ["discard", "discard"] 。
_ variable (and any others with a leading underscore as of Ruby 2.0) is treated specially 专门用于此类一次性使用。
您可以使用 splat 运算符。
a,b,*,e = ["foo","bar",nil,nil,"blah"]
【讨论】:
如果数组较长,这是一个替代方案:
a,b,e = [ "foo","bar","discard","discard","blah" ].values_at(0,1,4)
【讨论】: