Ruby Style: So überprüfen Sie, ob ein verschachteltes Hash-Element vorhanden ist

Stellen Sie sich eine "Person" vor, die in einem Hash gespeichert ist. Zwei Beispiele sind:

fred = {:person => {:name => "Fred", :spouse => "Wilma", :children => {:child => {:name => "Pebbles"}}}}
slate = {:person => {:name => "Mr. Slate", :spouse => "Mrs. Slate"}} 

Wenn die "Person" keine Kinder hat, ist das Element "Kinder" nicht vorhanden. Für Mr. Slate können wir also überprüfen, ob er Eltern hat:

slate_has_children = !slate[:person][:children].nil?

Was ist, wenn wir nicht wissen, dass "Schiefer" ein "Personen" -Hash ist? Erwägen:

dino = {:pet => {:name => "Dino"}}

Wir können nicht mehr einfach nach Kindern suchen:

dino_has_children = !dino[:person][:children].nil?
NoMethodError: undefined method `[]' for nil:NilClass

Wie würden Sie die Struktur eines Hashes überprüfen, insbesondere wenn dieser tief verschachtelt ist (sogar tiefer als in den hier aufgeführten Beispielen)? Vielleicht ist eine bessere Frage: Was ist die "Ruby-Methode", um dies zu tun?

Antworten auf die Frage(15)

Ihre Antwort auf die Frage