Çok geç ama tercihen semboller anahtar olarak kullanılmalıdır:
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
Ancak, dizeyi anahtar olarak geçirirseniz karma oluştururken, dizeyi anahtarlarda arayacaktır.
Ama hash oluştururken sembol anahtar olarak has_key? tuşları kullanarak tuşları arayacaktır.
Rails kullanıyorsanız, bunu Hash#with_indifferent_access
önlemek için kullanabilirsiniz ; Her iki hash[:my_key]
ve hash["my_key"]
aynı kayda işaret eder