Tag: 默认值

我怎样才能删除默认的gem? ! 想要卸载json的gem 1.7.7版本

我在OSX和Ubuntu中有相同的rails应用程序,我想使用Zeus来加速我的rspec。 在Ubuntu中,Zeus启动Ok,但在OSX中它总是崩溃。 最后我发现问题, https://github.com/burke/zeus/issues/237#issuecomment-18700462 OSX和Ubuntu之间的区别是json gem的版本。 我使用gem list | grep json gem list | grep json Ubuntu显示 json (1.8.1, 1.8.0, 1.5.3) json_pure (1.5.3) json_spec (1.1.1) jsonpath (0.5.3) multi_json (1.8.2, 1.7.8, 1.0.3) Mac显示 json (1.8.1, 1.7.7) json_spec (1.1.1) jsonpath (0.5.5, 0.5.3) multi_json (1.8.2, 1.7.8) 所以我想卸载1.7.7版本的json gem来让zeus开始,但是 gem uninstall json -v 1.7.7 ERROR: While executing gem … […]

哈希默认值未被使用

今天我尝试了下面的代码片段,我不明白为什么我们之间会得到不同的结果。 据我所知,他们是一样的。 一个使用Hash的默认值,另一个片段在访问密钥之前为密钥创建一个空数组。 任何了解发生了什么的人? 🙂 # Hash default if the key doesn’t have a value set is an empty Array a = Hash.new([]) a[:key] < [2] pa # => {} nil pa[:key] # => [2] p a.keys # => [] p a.values # => [] # Explicitly add an array for all nodes before creating […]

如何为二维数组指定默认值?

我有一个像这样创建的二维数组: array = Array.new(10){Array.new(10)} 如何在初始化时为每个单元格分配默认值? 我知道我可以用两个嵌套的each循环做到这一点,但我想知道是否还有另一种方法?

哈希默认值是具有相同默认值的哈希

像这样设置哈希的默认值: hash = Hash.new { |hsh, key| hsh[key] = {} } 将为未知密钥创建(并分配)新哈希,但对于创建的哈希的未知密钥将返回nil : hash[:unkown_key] #=> {} hash[:unkown_key][:nested_unknown] #=> nil 我可以让它适用于第二级,如下所示: hash = Hash.new do |hsh, key| hsh[key] = Hash.new { |nest_hsh, nest_key| nest_hsh[nest_key] = {} } end 但是,它在第​​三级不起作用: hash[:unkown_key][:nested_unknown] #=> {} hash[:unkown_key][:nested_unknown][:third_level] #=> nil 如何让它在任意级别工作? hash[:unkown_key][:nested_unknown][:third_level][…][:nth_level] #=> {}

为什么Hash.new({})会隐藏哈希成员?

好的,所以我想创建一个散列,其中有一个空散列作为默认值。 我知道,有点奇怪,但是我想我觉得它可能有用。 所以这就是我做的: >> a = Hash.new({}) => {} >> a[:a][:b] = 5 => 5 >> a => {} >> a[:a] => {:b=>5} >> a.keys => [] >> a.size => 0 >> a[:a].size => 1 换句话说,当我检查哈希时,我没有看到哈希成员,但我可以通过它的密钥访问它。 这是预期的行为吗? 这里发生了什么? 顺便说一下,这是Ruby 1.9.1,还没有尝试过早期版本。 编辑:简化示例,因为它不必是散列哈希哈希…