Groovy-да карталарды қалай анықтауға болады

Мен map1, map1, map3, etc ... секілді бірқатар карталарды жасағым келеді және оны циклмен орындағым келеді. Бұл жұмыс істемейді:

for (i = 1; i++){

    def map[ i ]

мұны қалай жасауға болады?

3
Неге бұл лауазымға 3 дауыс берілді? Жетіспеген тармақтың себебінен?
қосылды автор blaughli, көзі

2 жауаптар

Сіз мұны істей аласыз:

def listOfMaps = (1..10).collect { [:] }

Бұл 10 картаны қамтитын тізім жасайды

Егер бұл сіз қалаған нәрсе емес болса, не істеу керек екенін түсіндіруге тура келеді ;-)

1
қосылды

Қиыршықта карталар кілт/мән жұптарының кез келген санын қажет етеді. Сондай-ақ, сізде циклы үшін тармақ жоқ. Мынаны көріңіз:

maps = []//A list which will store maps.
for (i=0; i<10; i++) {
  maps[i] = [i:i]
}
maps[0]//=> [i:0]
maps[1]//=> [i:1] ...
maps[9]//=> [i:9]
0
қосылды
Бұл жағдайда «карталар» массив емес, Тізім болады
қосылды автор tim_yates, көзі
Сондай-ақ, кілттері жоқ карталар мүлдем жарамды. 'фраза ... кілт/мән жұптарының кез келген санын білдіреді .. , кем дегенде, біреуі болуы керек деп ойлауға ұқсайды ... Бірақ бұл мені өте селқостық болуы мүмкін ;-)
қосылды автор tim_yates, көзі
@tim_yates: дұрыс, бұл түсініктеме бекітілген. рахмет.
қосылды автор maerics, көзі
иә рахмет, бұл менің алдымнан келеді! Бірақ тереңірек өту үшін, айтқым келеді, сіз «карталарды сақтайтын массаны» сияқты бірнеше «карталар» ретінде көргім келеді ... Мұны қалай істеуге болады?
қосылды автор blaughli, көзі