既然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
返回true
而2.eql? 2.0
返回false
。