2
我有一些方法返回數組,如["1", "3", "2", "6", "2"]
。這些可以是字符串數組,而不是數字。我有另一種方法需要一個數組,並將它變成一個單一的字符串,如這個1 3 2 6 2
。紅寶石鏈式方法和返回數組
class Turn
def initialize
@rolls = 1
@dice = []
end
def roll
@roll = []
x = 5 - @dice.length
x.times do |i|
@roll[i] = rand(6) + 1
end
@roll # ["1", "3", "2", "6", "2"]
end
def show
@dice # ["1", "3", "6"]
end
def line(something)
temp = ""
something.each do |x|
temp << x + " "
end
puts temp # "1 3 6 " or "1 3 2 6 2 "
end
end
然後,我希望能夠以連鎖方式在一起,所以我可以做
first = Turn.new
first.roll.line
first.show.line
不過,我真的不知道如何做到這一點,我一直沒能找到如何在線。我看到self
得到返回,但我無法弄清楚它的功能。如果我將它移動到另一個方法中,line
方法中的代碼有效,所以問題實際上只是處理鏈接和返回。
如果有人不僅可以幫助代碼,但如何鏈接如何處理返回值和如何返回自我作品,這將是很棒的。
謝謝!
你的第二部分是完美的!感謝您解釋第一部分。所以當我從左到右閱讀時,每個方法都會返回一個值,這會在下一個方法中執行? – 2010-08-05 02:30:28
是的,每個方法都會返回最後一個參數。一個很好的方式來看到這是使用irb控制檯。 – 2010-08-05 02:31:57
@Jed您是否指的是返回方法中最後一個參數的事實,因此您不需要顯式地使用'return @ dice'?因爲我已經明白了。我想知道什麼時候你有多個方法鏈接在一起,他們如何傳遞返回的值。 – 2010-08-05 02:34:44