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

  • AndyMcMillinTV

    AndyMcMillin

    6 HAZİRAN 2007
  • EmperorTigerstar

    EmperorTiger

    14 EYLÜL 2009
  • Jorrit Jongma

    Jorrit Jongm

    17 Ocak 2008