Ruby 可以在函数/方法中传递2个变量和参数

Ruby 可以在函数/方法中传递2个变量和参数,ruby,Ruby,我试图做一些类似的事情,但我对这种语言不太了解: def teste(*array1,*array2) 这可能吗?我必须传递一个数字和字符串数组,并且只能传递一个字符串数组,但我不知道每个数组有多少元素。您可以根据需要传递任意多的参数 不过,您可能不想“splat”它们,因为这样做的是非常具体的。您可以根据需要传递任意多的参数 但是,您可能不想“splat”它们,因为这样做的是非常具体的。这是不可能的,语言无法知道元素属于哪个数组。但是,您可以只传递2个数组。这是不可能的,语言无法知道元素属于哪

我试图做一些类似的事情,但我对这种语言不太了解:

def teste(*array1,*array2)


这可能吗?我必须传递一个数字和字符串数组,并且只能传递一个字符串数组,但我不知道每个数组有多少元素。

您可以根据需要传递任意多的参数


不过,您可能不想“splat”它们,因为这样做的是非常具体的。

您可以根据需要传递任意多的参数


但是,您可能不想“splat”它们,因为这样做的是非常具体的。

这是不可能的,语言无法知道元素属于哪个数组。但是,您可以只传递2个数组。

这是不可能的,语言无法知道元素属于哪个数组。但是,您可以只传递2个数组。

一个方法中不能有两个可变参数列表。如果像您希望的那样定义一个包含两个可变参数列表的方法是合法的,那么当您调用say
teste(a,b,c)
时,ruby如何知道哪个参数应该放在哪个数组中呢?这是否会导致
array1=[a];数组2=[b,c]
array1=[a,b];数组2=[c]
?很难说


如果要将两个数组传递给一个方法,只需将其定义为接受两个常规参数,然后用两个数组调用即可。

一个方法中不能有两个可变参数列表。如果像您希望的那样定义一个包含两个可变参数列表的方法是合法的,那么当您调用say
teste(a,b,c)
时,ruby如何知道哪个参数应该放在哪个数组中呢?这是否会导致
array1=[a];数组2=[b,c]
array1=[a,b];数组2=[c]
?很难说


如果要将两个数组传递给一个方法,只需将其定义为接受两个常规参数,然后用两个数组调用它。

无论两个数组参数都有多少个元素。出于您的目的,您可以这样做:

def teste(字符串和数字的排列,仅字符串的排列)

现在按如下方式调用该方法:

teste([1,2,3,'foo','bar',['foo','bar','baz'])

在方法主体中,您现在可以访问:
arr\u字符串和数字
等于
[1,2,3,'foo','bar']

arr\u of_only_字符串
等于
['foo','bar','baz']

两个数组参数都有多少个元素并不重要。出于您的目的,您可以这样做:

def teste(字符串和数字的排列,仅字符串的排列)

现在按如下方式调用该方法:

teste([1,2,3,'foo','bar',['foo','bar','baz'])

在方法主体中,您现在可以访问:
arr\u字符串和数字
等于
[1,2,3,'foo','bar']

arr_of_only_字符串
等于
['foo'、'bar'、'baz']

如果您粘贴了更多的代码,这会很有帮助。@Richard他想要两个由该语言自动处理的变长参数列表。类似于
teste(var1,var2,var3,var4)
其中var1和var2是array1的一部分,var3和var4是array2的一部分。正如我在回答中所说的,这是不可能的。如果您粘贴更多的代码,这将非常有帮助。@Richard他想要两个可变长度的参数列表,由该语言自动处理。类似于
teste(var1,var2,var3,var4)
其中var1和var2是array1的一部分,var3和var4是array2的一部分。正如我在回答中所说,这是不可能的。