ruby - 散列与删除

标签 ruby

为什么会这样:

elements = Hash.new()
elements[100] = "a"
elements[200] = "b"
elements[300] = "c"
elements[400] = "d"

print "Count: ", elements.count(), 

elements.delete(100)

print "Count: ", elements.count(),     

返回这个:

Count: 4
Count: 3

我想知道为什么除了值 100 什么都不会返回。

最佳答案

这按预期工作。

您正在打印 elements 散列的计数,开头为 4,然后您使用以下方法删除一个元素:elements.delete(100) 然后再次打印计数,现在是 3

通过这种方式了解您的元素散列发生了什么:

elements = Hash.new()
elements[100] = "a"
elements[200] = "b"
elements[300] = "c"
elements[400] = "d"

puts "elements: #{elements.inspect}"
puts "Count: #{elements.count()}"
elements.delete(100)
puts "elements: #{elements.inspect}"
puts "Count: #{elements.count()}"

# > elements: {100=>"a", 200=>"b", 300=>"c", 400=>"d"}
# > Count: 4
# > elements: {200=>"b", 300=>"c", 400=>"d"}
# > Count: 3

关于ruby - 散列与删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32751877/

相关文章:

ruby - 如何在 ruby​​ 中过滤多个条件的列表?

ruby-on-rails - 仅具有命名参数的方法中的 ArgumentError

ruby-on-rails - 何时在 Ruby on Rails 中使用内存

ruby - puppet 模板删除最后一个逗号

python - 使用 Iron.io 安排 Twilio 通话

ruby-on-rails - Ruby Regex MatchData 对象捕获行为异常的方法

ruby - 在 Centos 5.8 上安装 gitorious(乘客模块)

ruby-on-rails - 当方法存在时,Rails 在循环中出现 NoMethodError

ruby - Github API : Get pull request for specific release tag

ruby - 摆动假设 - ruby​​ 中字符串数组的组合或排列