Een beknopte handleiding voor het herhalen van een kaart in Groovy

1. Inleiding

In deze korte tutorial kijken we naar manieren om een ​​kaart in Groovy te herhalen met behulp van standaardtaalfuncties zoals elk, eachWithIndex, en een voor in lus.

2. Het elk Methode

Laten we ons voorstellen dat we de volgende kaart hebben:

def map = ['FF0000': 'Rood', '00FF00': 'Limoen', '0000FF': 'Blauw', 'FFFF00': 'Geel']

We kunnen de kaart herhalen door de elk methode met een simpele sluiting:

map.each {println "Hex-code: $ it.key = Kleurnaam: $ it.value"}

We kunnen de leesbaarheid ook een beetje verbeteren door een naam te geven aan de ingangsvariabele:

map.each {entry -> println "Hex-code: $ entry.key = Kleurnaam: $ entry.value"}

Of, als we de sleutel en waarde liever apart adresseren, kunnen we ze apart vermelden in onze afsluiting:

map.each {key, val -> println "Hex-code: $ key = Kleurnaam $ val"}

In Groovy worden kaarten die met de letterlijke notatie zijn gemaakt, geordend. We kunnen verwachten dat onze uitvoer in dezelfde volgorde staat als we hebben gedefinieerd in onze oorspronkelijke kaart.

3. Het eachWithIndex Methode

Soms willen we de inhoudsopgave terwijl we itereren.

Stel dat we bijvoorbeeld om de andere rij op onze kaart willen inspringen. Om dat in Groovy te doen, gebruiken we de eachWithIndex methode met binnenkomst en inhoudsopgave variabelen:

map.eachWithIndex invoer, index -> def indent = ((index == 0 

Net als bij de elk methode, kunnen we ervoor kiezen om de sleutel en waarde variabelen in onze afsluiting in plaats van de binnenkomst:

map.eachWithIndex sleutel, val, index -> def indent = ((index == 0 

4. Met behulp van een Voor in Lus

Aan de andere kant, als onze use case zich beter leent voor imperatief programmeren, kunnen we ook een voor in verklaring om over onze kaart te herhalen:

for (entry in map) {println "Hex-code: $ entry.key = Kleurnaam: $ entry.value"}

5. Conclusie

In deze korte tutorial hebben we geleerd hoe we een kaart kunnen herhalen met Groovy's elk en eachWithIndex methoden en een voor in lus.

De voorbeeldcode is beschikbaar op GitHub.