說我想通過這樣的數組:Ruby方法可以接受二維數組作爲參數嗎?
[['Person1', '14'], ['Person2', '26']]
的方法,我會怎麼做呢?
我想:
def people([person1, age1], [person2, age2])
但拋出一個錯誤。
想法?
EDIT1:這是我的實際代碼,以及錯誤消息被產生:
def who_wins?(*game)
if (game[0][1] =~ /[r]/i && game[1][1] =~ /[s]/i) || (game[0][1] =~ /[s]/i && game[1][1] =~ /[p]/i) || (game[0][1] =~ /[p]/i && game[1][1] =~ /[r]/i)
return game[0][0]
elsif (game[0][1] =~ /[r]/i && game[1][1] =~ /[p]/i) || (game[0][1] =~ /[s]/i && game[1][1] =~ /[r]/i) || (game[0][1] =~ /[p]/i && game[1][1] =~ /[s]/i)
return game[1][0]
elsif game[0][1] == game[1][1]
return game[0][0]
elsif
raise NoSuchStrategyError.new
end
end
當我聲明一個二維數組是這樣的:
g = [["Marc", "R"], ["Sandy", "S"]]
和我將它傳遞給方法像:
who_wins?(g)
我收到此錯誤:
NoMethodError: undefined method `[]' for nil:NilClass
的問題是不明確的。你想直接訪問數組內的變量嗎? – sawa 2012-03-13 01:19:08
如果你只是想傳遞給一個方法,什麼是def? – 2012-03-13 01:21:44
@sawa是的,我確實想訪問數組中的變量。所以我想能夠檢查一下person1的年齡是否爲14,如果是...則返回'X'。 – marcamillion 2012-03-13 01:26:38