发现写了一段时间的 ruby,对这个问题尚存疑惑..
是的,Ruby 没有 primitive 类型,proc 也是 Object,method 也是 Object
1.is_a? Object
#true
proc = -> {puts 1}
proc.is_a? Object
#true
class String
def -(s)
self.gsub(s, '')
end
end
"abc".method(:-).is_a? Object
#true
#6 楼 @gyorou a block is just part of the syntax of a method call
#5 楼 @FrankFang 面向对象虽然是 Java 的核心设计,但是 Java 和“一切皆对象”相去甚远,Java 的数据类型分为内置数据类型
、引用数据类型
,
There are eight primitive types in Java ——“core java”
Integer 是对象,但是 int 就是 int。
primitive 和 object 并没有什么明确的界限,immutable 的 object 就是 primitive,而一切都是对象的含义就是 everything is mutable,同时也意味着永远传递引用