使用以下代码完成Ruby入门练习:
num = 8
7.times do
print num.type, " ", num, "\n"
num *= num
end 我一直得到:
NoMethodError: undefined method `type' for 8:Fixnum我必须定义类型吗?我以为这是鲁比认识到的方法
发布于 2014-06-17 15:16:10
type方法用于返回对象的类,但在很久以前(回到1.8天内)被废弃,随后被移除。
您可以使用class方法,但是,如果您正在学习教程或类似的内容,这是一个非常老的迹象--可能是10年前的!
发布于 2014-06-17 15:03:51
type的意思可能是class,所以将type改为class
num = 8
7.times do
print num.class, " ", num, "\n"
num *= num
end发布于 2022-08-04 12:52:33
在使用编程Ruby:实用程序员指南时,方法“type”也有同样的问题。本练习的目的是说明整数存储在类Fixnum和Bignum的对象中,这两个类都是Integer类的子类(Bignum表示更大的数字)。另外,为了显示Ruby会自动地来回管理转换。
但是自从Ruby2.4中的特征#12005之后,Fixnum和Bignum就被统一为Integer了。随着它们的消失,Object#type方法也消失了。注意,在本练习中,Object#class方法将不会显示Fixnum和Bignum之间的区别(承认两者为整数)。所以,是的,这个练习现在要教我们的是关于Ruby的一些历史。
如果您想了解这两个类的更多信息,请查看书中关于“标准类型”的第一个练习。
https://stackoverflow.com/questions/24267165
复制相似问题