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

  • jeffisthecoolguy

    jeffisthecoo

    17 HAZİRAN 2013
  • Marques Brownlee

    Marques Brow

    21 Mart 2008
  • PorterRobinsonVEVO

    PorterRobins

    11 Kasım 2013