fun*_*hun 17 ruby hash dictionary
字典基本上只是一个哈希表吗?
还有奖励:在Ruby代码"Hash.new {0}"中,最后的"{0}"是什么?
sep*_*p2k 32
单词table,dictionary和map通常用于同义词(在数据结构的上下文中).哈希表/哈希映射是一种表/字典/映射.
这{0}是一个块(匿名函数),它忽略它的参数并返回数字0. Hash.new当在哈希映射中找不到键时,调用给定的块以产生默认值.
即如果我这样做h = Hash.new {0},那么h["key that does not exist"]我会回到0而不是nil(没有它我会得到{0}).请注意,在这种情况下,默认值是不可变的并且不依赖于键,您不需要使用块形式Hash.new,您可以Hash.new(0)将0设置为默认值.
小智 18
在Ruby中,哈希是一个关键的价值存储
h = Hash.new
h['one'] = 1
h['one'] #=> 1
h['two'] #=> nil
Run Code Online (Sandbox Code Playgroud)
{0}是一个块,如果你在哪里调用一个不存在的Key,它将被评估,它就像一个默认值.
h = Hash.new {0}
h['one'] #=> 0
h = Hash.new {|hash,key| "#{key} has Nothing"}
h['one'] #=> "one has Nothing"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18339 次 |
| 最近记录: |