说我想通过这样的数组: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