gpt4 book ai didi

Ruby gsub 方法 - 接受散列?

转载 作者:数据小太阳 更新时间:2023-10-29 07:11:19 27 4
gpt4 key购买 nike

Ruby 的 gsub 字符串方法应该接受散列。如此处所写:

http://www.ruby-doc.org/core/classes/String.html#M001185

“如果第二个参数是一个哈希,并且匹配的文本是它的键之一,则对应的值是替换字符串。”

他们举了一个例子:

'hello'.gsub(/[eo]/, 'e' => 3, 'o' => '*')    #=> "h3ll*"

问题是,它对我不起作用(ruby 1.8.7):

in `gsub': can't convert Hash into String (TypeError)

这发生在完全相同的行上。为什么?

最佳答案

这是因为 OP 提到的文档是针对 ruby 1.9.2 的。对于 ruby 1.8.7,请参阅 http://www.ruby-doc.org/core-1.8.7/classes/String.html#M000792 ;在那里,gsub 方法不接受哈希作为参数。

更新:您可以将此功能添加到您的代码中:

class String
def awesome_gsub(pattern, hash)
gsub(pattern) do |m|
hash[m]
end
end
end

p 'hello'.awesome_gsub(/[eo]/, 'e' => '3', 'o' => '*') #=> "h3ll*"

关于Ruby gsub 方法 - 接受散列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5872941/

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