Lebih
Menambahkan pasangan kunci/nilai hash dengan
Di Ruby, seseorang dapat menambahkan nilai untuk array yang ada menggunakan <<:
a = []
a << "foo"
tapi, anda bisa juga menambahkan pasangan kunci/nilai yang ada hash?
h = {}
h << :key "bar"
Aku tahu yang dapat anda lakukan:
h[:key] = ""
h[:key] << "bar"
tapi yang's tidak aku inginkan.
Terima kasih.
72
6
Ada
gabung!
.Sejak hash aren't inheren yang dipesan, ada isn't gagasan menambahkan. Ruby hash sejak 1.9 mempertahankan penyisipan order, namun. Berikut ini adalah cara untuk menambahkan baru pasangan kunci/nilai.
Solusi yang paling sederhana adalah
Jika anda ingin metode, menggunakan
toko
:Jika anda benar-benar, benar-benar ingin menggunakan "sekop" operator (
<<
), itu sebenarnya adalah menambahkan nilai hash sebagai array, dan anda harus menentukan kunci:Tidak, aku don't pikir anda dapat menambahkan pasangan kunci/nilai. Satu-satunya hal terdekat yang saya sadar adalah dengan menggunakan
toko
metode:Mungkin anda ingin Hash#gabung ?
Jika anda ingin mengubah array di tempat menggunakan
gabung!
Saya harus melakukan hal yang sama tapi aku harus menambahkan nilai dengan tombol yang sama. Ketika saya menggunakan gabungan atau update saya dapat't mendorong nilai-nilai dengan tombol yang sama. Jadi saya harus menggunakan array dari hash.
Sama seperti mereka,
gabung!
dantoko
mengobati existing hash yang berbeda, tergantung pada keynames, dan oleh karena itu akan mempengaruhi preferensi anda. Selain itu dari sintaks pandang,gabung!
'skunci: "nilai"
sintaks erat pertandingan melawan JavaScript dan Python. I've selalu membenci koma memisahkan pasangan kunci-nilai pribadi.Untuk mendapatkan sekop operator
<<
bekerja, saya akan menyarankan menggunakan Mark Thomas's jawaban.