我试图做这样的事情,但我对这种语言知之甚少:
def teste (*array1, *array2)
这可能吗?我必须传递一个数字和字符串数组,只传递一个字符串,但我不知道每个元素有多少元素。
答案 0 :(得分:2)
你的数组参数有多少元素都没关系。为了您的目的,您可以这样做:
def teste(arr_of_strings_and_numbers, arr_of_only_strings)
现在调用这样的方法:
teste( [1, 2, 3, 'foo', 'bar'], ['foo', 'bar', 'baz'] )
在您的方法正文中,您现在可以访问:
arr_of_strings_and_numbers
等于[1, 2, 3, 'foo', 'bar']
和
arr_of_only_strings
等于['foo', 'bar', 'baz']
答案 1 :(得分:1)
您可以根据需要传递任意数量的参数。
然而,你可能不想“抨击”他们,这有点非常具体。
答案 2 :(得分:1)
这是不可能的,语言无法知道元素属于哪个数组。但是你可以简单地传递2个数组。
答案 3 :(得分:1)
方法中不能有两个可变参数列表。如果用你想要的两个可变参数列表定义一个方法是合法的,那么当你调用说teste(a,b,c)
时,ruby如何知道哪个参数应该放在哪个数组中?这会导致array1 = [a]; array2 = [b,c]
还是array1 = [a,b]; array2=[c]
?这是不可能的。
如果要将两个数组传递给方法,只需将其定义为两个常规参数,然后用两个数组调用它。