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

  • CNET

    CNET

    5 Mayıs 2006
  • Fubar Protocol

    Fubar Protoc

    21 AĞUSTOS 2010
  • William Sledd

    William Sled

    24 EYLÜL 2006