Es ist sehr spät, aber vorzugsweise sollten Symbole als Schlüssel verwendet werden:
my_hash = {}
my_hash[:my_key] = 'value'
my_hash.has_key?("my_key")
=> false
my_hash.has_key?("my_key".to_sym)
=> true
my_hash2 = {}
my_hash2['my_key'] = 'value'
my_hash2.has_key?("my_key")
=> true
my_hash2.has_key?("my_key".to_sym)
=> false
Aber beim Erstellen von Hash, wenn Sie String als Schlüssel übergeben, dann wird es für die Zeichenfolge in Schlüssel suchen.
Aber beim Erstellen von Hash übergeben Sie Symbol als Schlüssel dann has_key? wird die Schlüssel mit Hilfe von Symbol suchen.
Wenn Sie Rails verwenden, können Sie Hash#with_indifferent_access
um dies zu vermeiden; sowohl hash[:my_key]
y hash["my_key"]
verweist auf denselben Datensatz