SORU
20 AĞUSTOS 2008, ÇARŞAMBA


harika bir Liste, bir Harita oluşturmak için kısayol?

Bunun için bazı sorthand istiyorum:

Map rowToMap(row) {
    def rowMap = [:];
    row.columns.each{ rowMap[it.name] = it.val }
    return rowMap;
}

GDK şeyler olduğunu düşünürsek, şöyle bir şey yapmak mümkün olabileceğini düşünüyorum:

Map rowToMap(row) {
    row.columns.collectMap{ [it.name,it.val] }
}

ama doktorlar... bir şey mi kaçırdım? bir şey görmedim ya da sadece çok tembel miyim?

CEVAP
13 NİSAN 2011, ÇARŞAMBA


Son zamanlarda tam da bunu yapmak için ihtiyaç rastladım oldum: bir harita içine. bir liste dönüştürme Bu soruyu yöntemi collectEntries henüz yoktu o yüzden Groovy sürüm 1.7.9 çıktı önce gönderilmiş. Tam 14 ** collectMap yöntemi gibi çalışır:

Map rowToMap(row) {
    row.columns.collectEntries{[it.name, it.val]}
}

Eğer bazı nedenlerden dolayı eski Moda bir sürümü ile sıkışmış iseniz, inject yöntemi here önerilen () kullanılabilir. Bu kapatma içinde tek bir ifade (sadece karakter adına tasarruf!) alır biraz değiştirilmiş bir versiyonu:

Map rowToMap(row) {
    row.columns.inject([:]) {map, col -> map << [(col.name): col.val]}
}

operatör de << yerine kullanılabilir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AutoHotkey Tutorials

    AutoHotkey T

    29 Mayıs 2010
  • Avast

    Avast

    27 NİSAN 2006
  • RomanAtwood

    RomanAtwood

    18 Kasım 2009