In Groovy,我有一個返回三元組的函數。 我想:使用Map的值而不是Groovy的變量進行多次賦值
- 把在
Map
返回的第一個值的任意鍵, - 分配其他兩個變量賦值。
我可以這樣做:
Map m = [:]
(day, month, year) = "12 February 2014".split(" ");
m["day"] = day;
但我想擺脫變量day
的,就像這樣:
Map m = [:]
(m["day"], month, year) = "12 February 2014".split(" ");
出於某種原因,這似乎是不可能。這是編譯器提醒我的:
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
/web/com/139223923319646/main.groovy: 2: expecting ')', found ',' @ line 2, column 10.
(m["day"], month, year) = "12 February 2014".split(" ");
^
你們能否幫我解釋一下爲什麼這個語法不能用?
看到這個頁面http底部:/ /groovy.codehaus.org/Multiple+Assignment - 他們並沒有完全說出爲什麼,除了只使用'簡單變量,這意味着你的地圖不是'簡單'的對象。更多的熟練掌握Groovy的人(或許是Tim Yates!)或許能填補空白。 – mikemil