Wpadłem na coś dziwnego podczas przeprowadzania testów opartych na danych w Groovy. Jeśli to ma znaczenie, jest to test Spocka.Co to jest konstrukcja Groovy i jak działa ta składnia?
Oto sposób, myślę, że listy mają działać:
def list = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
println list[0]
produkuje:
[1, 2, 3]
przypadkowo zrobił coś takiego:
def whut = [[1, 2, 3]
[4, 5, 6]
[7, 8, 9]]
println whut[0]
println whut
który wyjścia:
[null, null, null]
[[null, null, null]]
OK, widzę, że Groovy nie lubił deklaracji bez przecinków - ale kompiluje, więc co to jest?
Oto, co naprawdę rzuca mi o tej składni:
def inputz = [
[1, 0.631226308, 0.631226308, 0.631226308, 1, 0, 0.240426243]
[1, 0.312284518, 0.312284518, 0.312284518, 1, 1, 1 ]
[3, 0.823506476, 0.31230335, 0.631237191, 1, 1, 0 ]
[4, 0.934875788, 0.486395986, 0.66732053, 3, 2, 0.927654169]
[4, 0.699869773, 0.234328294, 0.424739329, 3, 3, 1 ]
]
println inputz[0]
println inputz
daje następujące:
[0.631226308, 1, 1, 1, 1, 1, 1]
[[0.631226308, 1, 1, 1, 1, 1, 1]]
Jestem kompletnie zagubiony tutaj - co jest Groovy konstrukt tworzę i dlaczego czy wyprowadza te pozornie przypadkowe wartości z moich list?
Dzięki, a jeśli pomyślisz o bardziej opisowej nazwie mojego pytania, zmienię to.
Wykorzystaliśmy to niesamowite pytanie jako puzzler w drugim sezonie #groovypuzzlers i chcemy wysłać Tobie koszulkę z podziękowaniami. Jak mogę skontaktować się z Tobą? – JBaruch