红宝石 – 字典=哈希?

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

还有奖金:在Ruby代码“Hash.new {0}”中,“{0}”是什么?

解决方法

词表,词典和地图常常被同义使用(在数据结构的上下文中).散列表/散列图是一种表/字典/地图.

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

即如果我做h = Hash.new {0},然后h [“不存在的键”],我会返回0,而不是nil(我没有{0}).请注意,在这种情况下,默认值是不可变的,并且不依赖于该键,您不需要使用Hash.new的块形式,您可以使用Hash.new(0)将0设置为默认值值.

相关文章

以下代码导致我的问题: class Foo def initialize(n=0) @n = n end attr_accessor :n d...
这是我的spec文件,当为上下文添加测试“而不是可单独更新用户余额”时,我得到以下错误. require 's...
我有一个拦截器:DevelopmentMailInterceptor和一个启动拦截器的inititializer setup_mail.rb. 但我想将...
例如,如果我有YAML文件 en: questions: new: 'New Question' other: recent: ...
我听说在RSpec中避免它,let,let !,指定,之前和主题是最佳做法. 关于让,让!之前,如果不使用这些,我该如...
我在Rails中使用MongoDB和mongo_mapper gem,项目足够大.有什么办法可以将数据从Mongoid迁移到 Postgres...