Eine Methode, die den Schlüssel des Hash als Array zurückgibt
Schlüsselmethode
languages = { japan: 'Japanese', us: 'English', india: 'Hindi' }
languages.keys #=>[:japan, :us, :india]
Eine Methode, die den Hashwert als Array zurückgibt
Werte Methode
languages = { japan: 'Japanese', us: 'English', india: 'Hindi' }
languages.values #=> ["Japanese", "Enlgish", "Hindi"]
Eine Methode zum Überprüfen, ob der angegebene Schlüssel im Hash vorhanden ist
has_key?
languages = { japan: 'Japanese', us: 'English', india: 'Hindi' }
languages.has_key?(:japan) #=> true
languages.has_key?(:italy) #=> false
Stellen Sie einem Hash ** voran, um die Schlüssel und Werte anderer Hashes im Hash-Literal zu erweitern
**
h = { us: 'English', india: 'Hindi' }
{ japan: 'Japanese', **h } #=> {japan: 'Japanese', us: 'English', india: 'Hindi'}
#Der gleiche Effekt kann mit der Zusammenführungsmethode erzielt werden.
{ japan: 'Japanese'}.merge(h) #=> {japan: 'Japanese', us: 'English', india: 'Hindi'}
Eine Methode zum Konvertieren eines Hashs in ein Array mithilfe der to_a-Methode
to_a
languages = { japan: 'Japanese', us: 'English', india: 'Hindi' }
languages.to_a #=> [[:japan, "Japanese"], [:us, "English"], [:india, "Hindi"]]
Eine Methode, die ein Array in einen Hash konvertieren kann
to_h
array = [[:japan, "Japanese"], [:us, "English"], [:india, "Hindi"]]
array.to_h #=> {:japan=>"Japanese", :us=>"English", :india=>"Hindi"}
#To für ein Array, das nicht als Hash analysiert werden kann_Das Aufrufen der h-Methode führt zu einem Fehler
array = [5, 6, 7, 8]
array.to_h #=> TypeError: wrong element type Integer at 0 (expected array)
#Unerwarteter Fehler beim Duplizieren von Schlüsseln
array = [[:japan, "Japanese"], [:japan, "japanisch"]]
array.to_h #=> {:japan=>"japanisch"}
Es kann auch in ein Array konvertiert werden, indem es an Hash [] übergeben wird.
Hash[]
array = [[:japan, "Japanese"], [:us, "English"], [:india, "Hindi"]]
Hash[array] #=> {:japan=>"Japanese", :us=>"English", :india=>"Hindi"}
python
h = Hash.new('OK')
a = h[:aaa] #=> "ok"
b = h[:bbb] #=> "ok"
#Die Variablen a und b sind dasselbe Objekt
a.equal?(b) #=> true
#Wenn Sie die Variable a destruktiv ändern, ändert sich auch der Wert der Variablen b.
a.upcase!
a #=> "OK"
b #=> "OK"
Verwenden Sie Blöcke
h = Hash.new{'OK'}
a = h[:aaa] #=> "ok"
b = h[:bbb] #=> "ok"
#Die Variablen a und b sind unterschiedliche Objekte
a.equal?(b) #=> false
#Durch Anwenden destruktiver Änderungen auf Variable a wird der Wert von Variable b nicht geändert
a.upcase!
a #=> "OK"
b #=> "ok"
Verweise Eine Einführung in Ruby für diejenigen, die Profis werden wollen
Recommended Posts