在Ruby Language - About我们可以找到这句话:
“在Ruby中,一切都是对象。每一点信息和代码都可以赋予自己的属性和动作”
很难理解限制的位置。我们不能说条件语句是对象,可以吗?如果没有,“每一点信息”在这里意味着什么?
答案 0 :(得分:3)
这种说法有点夸张。 Ruby中的每个数据项都是 Object (或者更确切地说是Object的后代),而Proc
是一些代码的例子,它也是一个对象。但Ruby中有许多概念不是对象,例如关键词,任意陈述等。
但是,完整的语句总是评估到对象中。我认为作者的意图是戏剧性地描述没有值,原始或其他,这些也不是语言中的对象。
# Data items are all objects.
1.class # => Fixnum
(2 ** 64).class # => Bignum
"a".class # => String
{}.class # => Hash
nil.class # => NilClass
lambda {|x| x}.class # => Proc
# Statements, including conditionals, *evaluate* to objects.
(true ? "a" : 1).class # => String
(false ? "a" : 1).class # => Fixnum
(if true; 'a'; else; 1; end).class # => String
(if false; 'a'; else; 1; end).class # => Fixnum
(while true; break; end).class # => NilClass