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

  • JTechTalk

    JTechTalk

    11 Temmuz 2010
  • MADFINGER Games a.s.

    MADFINGER Ga

    21 NİSAN 2009
  • MultiPlayStationMan

    MultiPlaySta

    17 Aralık 2009