当前位置:  开发笔记 > 编程语言 > 正文

在Ruby中查找对象类型的函数

如何解决《在Ruby中查找对象类型的函数》经验,为你挑选了1个好方法。

我想知道是否有任何红宝石函数或方法来找出对象(类型IntegerStringSymbol,等)。



1> Jordan Runni..:

您所做的假设是,如果数学运算返回的值是整数,则该值的类将是Fixnum。那是不对的。

看一看:

a = 5
puts a.class
# => Fixnum

b = 5.0
puts b.class
# => Float

从数学上讲,5和5.0是相同的数字,并且该数字是整数。但是Ruby中的5和5.0(与许多其他编程语言一样)并不相同。一个是定点值(ergo Fixnum),另一个是浮点值(Float)。Fixnum只能表示整数,而Float可以表示整数和分数(但是我应该提一下,并不是所有分数都应该代表)。

在Ruby中,当您使用两个Fixnum执行数学运算时,将返回一个Fixnum:

a = 4
puts a.class # => Fixnum

x = a ** 2
puts x       # => 16
puts x.class # => Fixnum

但是,如果任何一个数字都是Float,则返回Float:

a = 4

x = a ** 2.0
puts x       # => 16.0
puts x.class # => Float

b = 4.0
puts b.class # => Float

y = b ** 2
puts y       # => 16.0
puts y.class # => Float

y = b ** 2.0
puts y       # => 16.0
puts y.class # => Float

您询问了如何“查找对象的类型”,而对该问题的答案是使用Object#class方法,如上所述。但是正如您所看到的,“对象是Fixnum吗?” 和“对象是整数吗?” 是两个不同的问题。

如果您想知道Ruby中的数字是否是整数,即使它是Float,也请参考以下最佳答案:检查Float是否等于Ruby中的整数值

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有