【发布时间】:2019-09-07 07:29:45
【问题描述】:
我期待符号在数组中返回真或假,但为什么它返回为真元素的值。更具体地说,.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
我期望输出真假,但输出是
[:kettles, :mittens, :packages].
【问题讨论】:
-
is_a?返回 true 或 false,但select返回序列中与给定谓词匹配的项目。您正在打印select的输出,而不是is_a?的输出 -
试试
map而不是select。