跳轉到內容

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),並且不能有單例方法。還有一些其他較小的例外。
華夏公益教科書