arrays - 为什么方法.is_a?返回真假以外的其他值?
问题描述
我期待符号在数组中返回真或假,但为什么它返回为真元素的值。更具体地说,.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].
解决方案
使用 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]
推荐阅读
- r - R如何将两个data.frames彼此相邻,用NA填充不相等的行
- r - 聚合函数丢弃值,程序 R
- angular - 从最后一个斜杠中减去 string='aaaa/bbb/ccc/dd' 以获得 'dd'
- javascript - 循环 json 数据
- perl - 本地主机的 AnyEvent tcp 服务器-客户端示例在不使用 TLS 时挂起
- reactjs - AWS JS SDK:如何使用根 IAM 账户从子账户/另一个角色访问 GameLift 数据?
- dataframe - 如何在 pyspark 数据框中将几何列从二进制格式转换为字符串格式?
- javascript - 向页面添加新元素
- android - 为 x86 构建具有 ARM 兼容性的 Android 11
- mongodb - 如何在 MongoDB 聚合中对数组内的字段进行排序