回答
keysAndValues
方法確實返回單個陣列(在其內部兩個陣列),但它的輸出可以被解釋爲兩個陣列。讓我來解釋:
single_array = ["hello", "world"]
puts single_array # => ["hello", "world"]
first_element, second_element = single_array
puts first_element # => "hello"
puts second_element # => "world"
原因這個符號可能是Ruby的分配(=
)運算符的實現。因此,調用a, b = keysAndValues(data)
將填充變量a
和b
。但要注意,雖然結果在技術上是有道理的,這可能在某些情況下出現意外:
first, second = 1 # first is 1, second is nil
也有一些其他用途多重分配,考慮以下情況:
a, b, *c = [1, 2, 3, 4] # note the asterisk symbol here
puts a # => 1
puts b # => 2
puts C# => [3,4]
Ruby支持並行任務。這是一個簡單的例子:
foo, bar = 1, 2
foo # => 1
bar # => 2
你的方法返回一個數組內的兩個值:
keys_and_values(
{
a: 1,
b: 2
}
).size # => 2
,其經由
=
分配給這兩個值在等式的左邊
。的數組中的值是在keys
和values
子陣列位於出處:
foo, bar = keys_and_values(
{
a: 1,
b: 2
}
)
foo.object_id # => 70159936091440
bar.object_id # => 70159936091420
Ruby是不與支持並行分配唯一的;它也用於其他語言。任何體面的Ruby手冊都會談論這個。這很好理解,因爲賦值給變量或者將多個參數傳遞給方法是Ruby中會反覆遇到的問題。做a search欲瞭解更多信息。
另外,在Ruby中,我們沒有命名使用camelCase的方法,比如「keysAndValues」。相反,我們使用snake_case:keys_and_values
。
「列表分配」不是「並行」 – gaussblurinc
它是平行的,列表,取決於您之前使用的語言。看看搜索的結果;很明顯,人們都使用兩者。 –
對不起,我的錯 – gaussblurinc
- 1. 比較兩個數組和返回值
- 2. 如何從AJAX請求中返回兩個單獨的值?
- 3. 如何將數組值單獨回顯
- 4. 如何從鍵返回PHP數組值?
- 5. 返回兩個單獨的表PL/SQL
- 6. 比較兩個數組並返回獨特價值
- 7. C++返回數組中的兩個值
- 8. 搜索按鍵和返回數組值
- 9. PHP循環數組鍵和返回值
- 10. 比較兩個詞典鍵值和返回值如果匹配
- 11. 組合兩個單獨的數組
- 12. 如何返回數組中某個值的鍵?
- 13. 從兩個單獨的查詢中返回最大值
- 14. 如何在兩個單獨的RDD之間映射鍵/值對?
- 15. 如何匹配兩個數組的元素並返回值
- 16. jq - 將鍵和值組合在單獨的數組下
- 17. 返回兩個詞典,使用每個單獨的函數
- 18. 函數計算和返回兩個值
- 19. CAST()數據集和返回兩個值
- 20. 如何刪除一個鍵並從PHP數組中返回值?
- 21. 單擊一個對象數組中的值返回另一個鍵的值AngularJS
- 22. 如何訪問函數返回的數組的鍵值
- 23. 如何將數組返回到單獨的類?
- 24. 函數返回兩個值
- 25. PHP返回數組中的主鍵值
- 26. 如何返回兩個單獨集合中匹配元素的總和
- 27. 從具有多個相同值的數組中返回單個鍵值?
- 28. 如何使用按鍵得到兩個數組的數組值
- 29. 獲得兩個單獨的數組
- 30. Hashtable的鍵和值在單獨的數組列表存儲
作爲'data'傳遞了什麼?既然你沒有解釋它,你的問題就不能回答。 – sawa
哦,真抱歉,這裏的數據特別是哈希 – user3735671