本文介绍了十进制数的指数和整数区别在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?
收益真正
只有当接收器和参数具有相同的类型和相等的值。因此, 2 == 2.0
收益真正
,而 2.eql? 2.0
收益假
。
Since Ruby does type conversion, how do I get the index correctly?
I would like this to return 1
[1,2.0,2,3].index(2.0)
#=> 1
I would like this to return 2
[1,2.0,2,3].index(2)
#=> 1
解决方案
Using a block together with eql?
is one way:
[1,2.0,2,3].index {|e| e.eql? 2.0}
#=> 1
[1,2.0,2,3].index {|e| e.eql? 2}
#=> 2
Unlike ==
, eql?
returns true
only if the receiver and the argument have the same type and equal values. So 2 == 2.0
returns true
while 2.eql? 2.0
returns false
.
这篇关于十进制数的指数和整数区别在Ruby中数组里面呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!