完整的编程初学者只是想澄清一些事情,我正在为哈希创建密钥并决定我想删除一个。以下是我的猜测:
hash["key"].delete
hash.delete["key"]
我最终查了一下,我想使用( )
:
hash.delete("key")
由于我使用[ ]
来创建哈希,为什么我不用它来删除密钥?另外,为什么hash("key").delete
不起作用?
答案 0 :(得分:10)
[]
is actually a method of Hash
,并在语言中专门处理,因此参数介于[]
之间。它等同于store
,它使用标准方法语法。
同样,delete
is also a method,它接受一个参数。执行hash.delete['foo']
正在尝试调用delete
(没有参数),然后在它返回的任何内容上调用[]
。执行hash['foo'].delete
时,delete
上存储的内容正在调用hash['foo']
。
答案 1 :(得分:2)
hash.delete()是一种方法,其中hash []是一种糖语法(但仍然是一种方法)。如果您更喜欢一致性,可以使用hash.store(key,value)。
hash[:key] = :value
hash.store(:key, :value)
hash.delete(:key)