跳转到内容

Ruby 编程/参考/预定义类

来自 Wikibooks,开放世界中的开放书籍

在 Ruby 中,即使是**基本类型**(也称为**预定义类**)也可以被修改。[1] 在以下示例中,5是一个立即的,[2] 一个字面量,一个对象,以及一个Fixnum.

class Fixnum

	alias other_s to_s
	def to_s()
		a = self + 5
		return a.other_s
	end

end


a = 5
puts a.class  ## prints Fixnum
puts a        ## prints 10 (adds 5 once)
puts 0        ## prints 5  (adds 5 once)
puts 5        ## prints 10 (adds 5 once)
puts 10 + 0   ## prints 15 (adds 5 once)

b = 5+5
puts b        ## puts 15 (adds 5 once)
  1. ^ 这意味着 4 个 VALUE 字节不是引用,而是值本身。所有5具有相同的对象 ID(这也可以通过其他方式实现)。
  2. ^ 可能并不总是像你希望的那样工作,基本类型没有构造函数(def initialize),并且不能有单例方法。还有一些其他较小的例外。
华夏公益教科书