我想知道是否可以像這個例子那樣將一個類的值分配給另一個類。
class Test1
attr_accessor :num1, :num2
def initialize
@num1 = num1
@num2 = num2
end
end
class Test2
attr_accessor :number1, :number2
def initialize
@number1 = number1
@number2 = number2
end
end
num = Test1.new(1, 2)
number = Test2.new(11, num)
number.number2 = temp
puts temp.num2
我收到“`initialize':引數數量錯誤(給定 2,預期 0)(ArgumentError)”訊息。所以我不知道我是否在代碼中出錯,或者無法通過這種方式將類分配給另一個類。
uj5u.com熱心網友回復:
您需要定義您的initialize方法以將num1and num2, andnumber1和number2作為引數。否則,它將訪問器方法的回傳值分配給實體變數,而這些方法只是回傳nil。
class Test1
attr_accessor :num1, :num2
def initialize(num1, num2)
@num1 = num1
@num2 = num2
end
end
class Test2
attr_accessor :number1, :number2
def initialize(number1, number2)
@number1 = number1
@number2 = number2
end
end
temp在您嘗試使用它之前,您仍然會收到由于未定義而導致的錯誤。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/537618.html
標籤:红宝石
上一篇:紅寶石中的克隆和補丁類
