首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Ruby中有原语类型吗?

Ruby中有原语类型吗?
EN

Stack Overflow用户
提问于 2013-09-13 23:50:28
回答 3查看 15.9K关注 0票数 26

我是一名刚刚开始学习Ruby的Java开发人员。Ruby有没有原始类型?我好像找不到他们的名单。若否,原因为何?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-09-13 23:52:02

Ruby的一个核心原则是所有数据都应该表示为对象。Smalltalk等其他语言也遵循类似的范例。

这种设计的好处是它使Ruby更优雅,更容易学习。应用于对象的规则将一致地应用于所有Ruby。

例如,当初学者刚开始学习Java时,原始类型int和包装器类Integer之间的区别可能会令人困惑。通过自动装箱,两者之间有时会出现令人困惑的隐式转换,这加剧了这种混乱。

那么,像Java或C#这样的语言为什么要为原始类型而烦恼呢?答案是性能。与原语相比,创建对象会带来额外的开销。

票数 36
EN

Stack Overflow用户

发布于 2013-09-14 01:08:32

Ruby中没有原始数据类型。每个值都是一个对象,即使是文字也会变成对象:

代码语言:javascript
复制
    nil.class  #=> NilClass
   true.class  #=> TrueClass
  'foo'.class  #=> String
   :bar.class  #=> Symbol
    100.class  #=> Integer
   0x1a.class  #=> Integer
0b11010.class  #=> Integer
  123.4.class  #=> Float
1.234e2.class  #=> Float

这可以让你写出漂亮的代码,比如:

代码语言:javascript
复制
3.times do
  puts "Hello from Ruby"
end
票数 19
EN

Stack Overflow用户

发布于 2021-02-12 20:02:20

ruby中没有原始数据类型。因为ruby是一种纯面向对象的语言。基本上,有像其他语言一样的数据类型,但这些数据类型是像java中的集合一样的类。

如果你像"Akshay“一样定义任何字符串值,那么它就是一个对象。您可以查看下面的图片,其中"Akshay“有object_id 30300。请单击链接以检查rails控制台上的对象。从图像中的更多示例中,我们可以确定除了关键字之外,所有内容都是ruby中的对象。

因此,我们可以在这里得出结论,ruby将这些原始数据类型转换为类。

Ruby console having primitive data as object

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

https://stackoverflow.com/questions/18790442

复制
相关文章

相似问题

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