gpt4 book ai didi

ruby - 使用 block 创建哈希 (Ruby)

转载 作者:数据小太阳 更新时间:2023-10-29 06:47:28 25 4
gpt4 key购买 nike

我可以从 block 创建 Ruby 哈希吗?

像这样的东西(虽然这具体不起作用):

foo = Hash.new do |f|
f[:apple] = "red"
f[:orange] = "orange"
f[:grape] = "purple"
end

最佳答案

在 Ruby 1.9 中(或加载了 ActiveSupport,例如在 Rails 中),您可以使用 Object#tap,例如:

foo = Hash.new.tap do |bar|
bar[:baz] = 'qux'
end

您可以将 block 传递给 Hash.new,但这用于定义默认值:

foo = Hash.new { |hsh, key| hsh[key] = 'baz qux' }
foo[:bar] #=> 'baz qux'

就其值(value)而言,我假设您对这些 block 内容有更大的目的。语法 { :foo => 'bar', :baz => 'qux' } 可能是您真正需要的。

关于ruby - 使用 block 创建哈希 (Ruby),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3669974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com