首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NoMethodError: 8:Fixnum的未定义方法“`type”

NoMethodError: 8:Fixnum的未定义方法“`type”
EN

Stack Overflow用户
提问于 2014-06-17 15:01:19
回答 3查看 2.1K关注 0票数 2

使用以下代码完成Ruby入门练习:

代码语言:javascript
复制
num = 8
7.times do
  print num.type, " ", num, "\n"
  num *= num
end 

我一直得到:

代码语言:javascript
复制
NoMethodError: undefined method `type' for 8:Fixnum

我必须定义类型吗?我以为这是鲁比认识到的方法

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-06-17 15:16:10

type方法用于返回对象的类,但在很久以前(回到1.8天内)被废弃,随后被移除。

您可以使用class方法,但是,如果您正在学习教程或类似的内容,这是一个非常老的迹象--可能是10年前的!

票数 5
EN

Stack Overflow用户

发布于 2014-06-17 15:03:51

type的意思可能是class,所以将type改为class

代码语言:javascript
复制
num = 8
7.times do
  print num.class, " ", num, "\n"
  num *= num
end
票数 2
EN

Stack Overflow用户

发布于 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的一些历史。

如果您想了解这两个类的更多信息,请查看中关于“标准类型”的第一个练习。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24267165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档