我想要一行代码来测试数组中的每个元素是否为整数,并返回true/false。如果数组中的任何一个元素不是整数,则应该返回false,否则返回true。这是我的尝试:
```ruby array.all? {|x| x.is_a? Integer} ```
```ruby array.all? {|x| x.is_a? Integer} ```
>> ([2,1,4].map {|x| (x.is_a? Integer)}).reduce {|x, result| x and result}
=> true
>> ([2,"a",4].map {|x| (x.is_a? Integer)}).reduce {|x, result| x and result}
=> false
还有其他的想法可以进一步概括吗?
.
(消息发送)和::
(作用域解析)运算符。目前,.
表示消息发送,而::
则表示作用域解析或消息发送。如果我们从::
中删除“或消息发送”的部分,我们可以扩展它以允许像foo::bar
这样的东西表示为foo.method(:bar)
。目前,这是不起作用的,因为foo::bar
的含义与foo.bar
相同。 - Jörg W Mittag