我試圖做這樣的事情,但我不知道很多關於這門語言:可以通過2個變量參數的函數/方法
def teste (*array1, *array2)
這是可能的嗎?我必須傳遞一個數字和字符串數組和一個字符串數組,但我不知道每個數組有多少個元素。
我試圖做這樣的事情,但我不知道很多關於這門語言:可以通過2個變量參數的函數/方法
def teste (*array1, *array2)
這是可能的嗎?我必須傳遞一個數字和字符串數組和一個字符串數組,但我不知道每個數組有多少個元素。
無論你的數組參數有多少個元素都有。你的目的,你可以做這樣的:
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']
您可以根據需要傳遞儘可能多的參數。
儘管如此,你可能不想「摔打」它們,但它做的事情非常具體。
這是不可能的,語言無法知道元素屬於哪個數組。但是,您可以簡單地傳遞2個數組。
在方法中不能有兩個可變參數列表。如果用你想要的兩個可變參數列表定義一個方法是合法的,那麼當你調用teste(a,b,c)
時,ruby如何知道哪個參數應該放入哪個數組?這應該導致array1 = [a]; array2 = [b,c]
或array1 = [a,b]; array2=[c]
?這是不可能的。
如果你想兩個數組傳遞給方法,只是定義其採取兩個常規參數,然後用兩個數組調用它。
這如果你粘貼了更多的代碼,會很有幫助。 – Richard
@Richard他希望由語言自動處理2個變長參數列表。就像'teste(var1,var2,var3,var4)',其中var1和var2是array1的一部分,var3和var4是array2的一部分。正如我在答覆中所說的那樣,這是不可能的。 – deviousdodo