我期望符号在数组中返回true或false,但是为什么它返回true元素的值。更具体地说,.is_a如何?工作,我以为它返回的是真还是假。
my_array = ["raindrops", :kettles, "whiskers", :mittens, :packages]
symbol_filter = lambda {|x| x.is_a? Symbol}
symbols = my_array.select(&symbol_filter)
puts symbols
我期望输出为true或false,但输出为
[:kettles, :mittens, :packages].
答案 0 :(得分:1)
使用collect获得所需的输出
my_array = ["raindrops", :kettles, "whiskers", :mittens, :packages]
symbol_filter = lambda {|x| x.is_a? Symbol}
symbols = my_array.collect(&symbol_filter)
puts symbols
O / p
2.4.0 :066 > symbols = my_array.collect(&symbol_filter)
=> [false, true, false, true, true]