本文介绍了十进制数的指数和整数区别在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中数组里面呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-29 18:50