首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >字典=哈希?

字典=哈希?
EN

Stack Overflow用户
提问于 2011-01-18 08:05:44
回答 4查看 19.2K关注 0票数 18

字典基本上只是一个哈希表吗?

另外:在Ruby代码"Hash.new {0}“中,末尾的"{0}”是用来做什么的?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-01-18 08:09:36

表、字典和映射这三个词通常是同义词(在数据结构的上下文中)。散列表/散列映射是一种表/字典/映射。

{0}是一个块(匿名函数),它忽略其参数并返回数字0。当在散列映射中找不到键时,将调用提供给Hash.new的块以生成默认值。

也就是说,如果我先执行h = Hash.new {0},然后执行h["key that does not exist"],则返回0,而不是nil (如果没有{0},我将得到它)。注意,在这种情况下,默认值是不可变的,并且不依赖于键,您不需要使用Hash.new的块形式,只需执行Hash.new(0)将0设置为默认值即可。

票数 32
EN

Stack Overflow用户

发布于 2011-01-18 08:13:43

在Ruby中,Hash是一个键、值存储

代码语言:javascript
运行
复制
h = Hash.new
h['one'] = 1
h['one'] #=> 1
h['two'] #=> nil

{0}是一个块,如果您在何处调用不存在的键,则将对其进行评估,它类似于默认值。

代码语言:javascript
运行
复制
h = Hash.new {0}
h['one'] #=> 0
h = Hash.new {|hash,key| "#{key} has Nothing"}
h['one'] #=> "one has Nothing"
票数 19
EN

Stack Overflow用户

发布于 2011-01-18 08:07:33

字典只是将一个键映射到一个值。实现这一点的方法有很多,哈希表就是其中之一。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4719272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档