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?