[RUBY] Was du über Hashing gelernt hast

Häufig verwendete Methoden beim Hashing

Schlüsselmethode

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]  

Werte Methode

Eine Methode, die den Hashwert als Array zurückgibt

Werte Methode


languages = { japan: 'Japanese', us: 'English', india: 'Hindi' }
languages.values #=> ["Japanese", "Enlgish", "Hindi"]

has_key? -Methode

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

Erweitern Sie Hash mit **

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'}

Array und Hash

to_a Methode

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"]]

to_h Methode

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"}

Anfangswert von Hash

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

Was du über Hashing gelernt hast
Was Sie über Symbole gelernt haben
Was ich über Kotlin gelernt habe
Über Hash
Nehmen Sie, was Sie über Java-Reflexion gelernt haben
Über Ruby Hash
Was ich gelernt habe
Über Ruby Hash
Zusammenfassung dessen, was ich über Spring Boot gelernt habe
Über Ruby Hash (Fortsetzung)
Was ich gelernt habe ② ~ Mock ~
Was ich gelernt habe ~ ~ DJUnit ~
Ich werde sowieso schreiben, was ich über Docker gelernt habe (zweite)
Ich werde sowieso schreiben, was ich über Docker gelernt habe (zuerst)
Was ich über Java 8 recherchiert habe
Was ich über Java 6 recherchiert habe
Was ich über Java 9 recherchiert habe
Über Ruby-Hashes und -Symbole
Was ich über Java 7 recherchiert habe
Fassen Sie die Wörter zusammen, die Sie gelernt haben
config.ru Was machst du?
Was Sie gelernt haben, als Sie Java SE 8 Silber und Gold erworben haben
[Android / Java] Erfahren Sie mehr über DataBinding
Was ich über Java 5 recherchiert habe
Was ich aus dem Studium von Rails gelernt habe
Über die Sprache, die von nun an zu lernen ist
Was ich mit Java Gold gelernt habe
Was ich mit Java Silver gelernt habe
Was ich über Java-Lernen recherchiert habe