Latest web development tutorials

Ruby hash (Hash)

Hash (Hash) mirip dengan "kunci" => "nilai" dari koleksi seperti pasangan kunci-nilai. Mirip dengan array hash, tetapi tidak terbatas pada penggunaan angka indeks.

Indeks hash (atau "kunci") dapat hampir semua objek.

Array Hash Meskipun mirip, tapi ada perbedaan yang sangat penting: elemen hash tidak dalam urutan tertentu. Jika pesanan adalah penting, maka anda harus menggunakan array.

Membuat hash

Seperti array, berbagai cara yang berbeda untuk membuat hash. Anda dapat membuat hash kosong melalui metode kelasbaru:

months = Hash.new

Anda juga dapat menggunakan hashbarudibuat dengan nilai-nilai default, tanpa nilai default hash adalahnihil:

months = Hash.new( "month" )

或

months = Hash.new "month"

Ketika Anda mengakses hash dengan nilai default di sembarang tombol, jika kunci atau nilai tidak ada, kembali ke nilai default akses hash:

#!/usr/bin/ruby

months = Hash.new( "month" )

puts "#{months[0]}"
puts "#{months[72]}"

Jalankan contoh di atas output:

month
month
#!/usr/bin/ruby

H = Hash["a" => 100, "b" => 200]

puts "#{H['a']}"
puts "#{H['b']}"

Jalankan contoh di atas output:

100
200

Anda dapat menggunakan benda Ruby sebagai kunci atau nilai, atau dapat menggunakan array, sebagai contoh yang ditunjukkan:

[1,"jan"] => "January"

Hash built-in metode

Jika Anda perlu memanggil metode Hash, Anda perlu instantiate objek Hash. Berikut adalah cara untuk membuat contoh Hash objek:

Hash[[key =>|, value]* ] or

Hash.new [or] Hash.new(obj) [or]

Hash.new { |hash, key| block }

Ini akan kembali objek yang diberikan diisi dengan hash baru. Sekarang, dengan menggunakan benda-benda yang diciptakan, kita dapat memanggil salah satu metode yang tersedia. Sebagai contoh:

#!/usr/bin/ruby

$, = ", "
months = Hash.new( "month" )

months = {"1" => "January", "2" => "February"}

keys = months.keys

puts "#{keys}"

Jalankan contoh di atas output:

["1", "2"]

Berikut ini adalah metode hash umum (dengan asumsihashobjek Hash):

Tidak. Metode & deskripsi
1 hash == other_hash
Periksa apakah kedua memiliki nilai kunci hash yang sama untuk jumlah pasangan nilai kunci dicocokkan dengan satu sama lain untuk menentukan apakah dua hash yang sama.
2 hash. [key]
Gunakan nilai referensi kunci dari hash. Jika kunci tidak ditemukan, kemudian kembali ke nilai default.
3 hash. [key] = nilai
nilaiyang diberikan nilai darikunci yangterkait dengan kunci yang diberikan.
4 hash.clear
Hapus semua kunci dari hash.
5 hash.default (key = nil)
Mengembalikan nilai default darihash,jika tidak diatur secara default =, kembali nihil. (Jika kunci tidak ada dihash,maka [] mengembalikan nilai default.)
6 hash.default = obj
Mengatur nilai default untukhash.
7 hash.default_proc
Jikahashyang diciptakan oleh blok, blok kembali.
8 hash.delete (key) [atau]
array.delete (key) {| kunci | blok}
Hapus dari kuncihasholeh sepasangkunci.Jika blok dan tidak menemukan yang cocok pasangan nilai kunci, hasil dari blok tersebut dikembalikan. Bandingkan dengandelete_if.
9 hash.delete_if {| key, value | blok }
Hal iniberlakuuntuk setiap blok dari blok, menghapus kuncidari hash.
10 hash.each {| key, value | blok }
Traversehash,dipanggil sekali untuk setiap blokkunci,lulus kunci-nilai sebagai array dua elemen.
11 hash.each_key {| kunci | blok}
Traversehash,dipanggil sekali untuk setiap blokkunci,luluskuncisebagai parameter.
12 hash.each_key {| key_value_array | blok}
Traversehash,dipanggil sekali untuk setiap blokkunci,luluskuncidannilaisebagai argumen.
13 hash.each_value {| nilai | blok}
Traversehash,dipanggil sekali untuk setiap blokkunci,lulus sebagainilai parameter.
14 hash.empty?
Periksa apakah hash kosong (tidak berisi pasangan kunci-nilai), dan mengembalikanbenaratausalah.
15 hash.fetch (key [, default]) [atau]
hash.fetch (key) {| kunci | blok}
Nilai kembali darihashmelaluikunciyangdiberikan.Jika Anda tidak menemukankunci,dan tidak memberikan parameter tambahan, membuangIndexErrorpengecualian, jika diberikandefault,mengembalikandefault;jika blok opsional, hasil blok dikembalikan.
16 hash.has_key? (key) [atau] hash.include? (key) [atau]
hash.key? (key) [atau] hash.member? (key)
Periksa apakahkunci yangdiberikan ada di hash, mengembalikanbenaratausalah.
17 hash.has_value? (value)
Periksa apakah hash berisinilaiyangdiberikan.
18 hash.index (value)
Pengembalian untuknilai yangdiberikan darikunci hash,pengembalian jika tidak ada yang cocoknihil.
19 hash.indexes (kunci)
Ini mengembalikan sebuah array baru dengan nilai komponen kunci yang diberikan. tidak dapat menemukan kunci untuk memasukkan nilai default. Metode ini telah usang, silakan gunakan pilih.
20 hash.indices (kunci)
Ini mengembalikan sebuah array baru dengan nilai komponen kunci yang diberikan. tidak dapat menemukan kunci untuk memasukkan nilai default. Metode ini telah usang, silakan gunakan pilih.
21 hash.inspect
Kembali Cetak string versi hash.
22 hash.invert
Buat inversihash,hash barukuncidannilai-nilai.Dengan kata lain,hash baru,nilai hash menjadi kunci, nilai akan menjadi kunci.
23 hash.keys
Membuat array baru dengan tombolhash./ Td>
24 hash.length
Ia mengembalikan ukuranhashinteger atau panjang.
25 hash.merge (other_hash) [atau]
hash.merge (other_hash) {| kunci, oldval, newVal | blok}
Mengembalikan hash baru,hashberisi konten danother_hashpenulisan ulang hash kunci denganother_hashdengan sepasang kunci duplikat.
26 hash.merge! (other_hash) [atau]
hash.merge (other_hash)! {| kunci , oldval, newVal | blok}
Dan menggabungkan sama, namun sebenarnya hash telah berubah.
27 hash.rehash
Re-menetapkanhashberdasarkan nilai sekarang dari setiaptombol.Jika Anda memasukkan nilai telah berubah, proses akan kembali diindekshash.
28 hash.reject {| key, value | blok }
Sepertihalnyasetiapblokkunci untuk membuathash baru.
29 hash.reject! {| key, value | blok}
Danmenolakyang sama, namun sebenarnya hash telah berubah.
30 hash.replace (other_hash)
Mengganti isihashdariother_hash konten.
31 hash.select {| key, value | blok }
Mengembalikan sebuah array baru,blokmengembalikan nilai-nilai kuncihashyang benar di pasang.
32 hash.shift
Hapus darihashdalam sepasang kunci dan mengirimkan nilai kunci kembali sebagai array dua elemen.
33 hash.size
Ini mengembalikan sebuahhashinteger dariukuranatau panjang.
34 hash.sort
hashdikonversi ke array dua dimensi yang berisi kunci-nilai array dan kemudian diurutkan.
35 hash.store (key, value)
Hashdisimpan dalam sepasang kunci-nilai.
36 hash.to_a
Membuat array dua dimensi dari hash. Setiap pasangan kunci-nilai ke dalam array, semua array ini disimpan dalam array.
37 hash.to_hash
Pengembalianhash (self).
38 hash.to_s
hashdikonversi ke array, maka array dikonversi ke string.
39 hash.update (other_hash) [atau]
hash.update (other_hash) {| kunci, oldval, newVal | blok}
Mengembalikan hash baru,hashberisi konten danother_hashpenulisan ulanghashkunci denganother_hashdengan sepasang kunci duplikat.
40 hash.value? (value)
Periksa apakahhashberisinilaiyangdiberikan.
41 hash.values
Ia mengembalikan sebuah array baru yang berisi semua nilai-nilaihash.
42 hash.values_at (obj, ...)
Ia mengembalikan sebuah array baru yang berisi nilaihashyang terkait dengan kunci yang diberikan.