既然ruby进行类型转换,那么如何正确地获取索引呢?
我想要这个返回1

[1,2.0,2,3].index(2.0)
#=> 1

我想要这个返回2
[1,2.0,2,3].index(2)
#=> 1

最佳答案

将块与eql?一起使用是一种方法:

[1,2.0,2,3].index {|e| e.eql? 2.0}
#=> 1
[1,2.0,2,3].index {|e| e.eql? 2}
#=> 2

==不同,eql?仅当接收器和参数具有相同的类型和相等的值时才返回true。所以2 == 2.0返回true2.eql? 2.0返回false

10-07 19:07