Ruby   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Ruby gsub方法 – 接受哈希?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
Ruby的gsub字符串方法应该接受哈希.正如这里所写:

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

“如果第二个参数是Hash,匹配的文本是其中一个键,则相应的值是替换字符串.”

他们举了一个例子:

'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方法不接受hash作为param.

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

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方法 – 接受哈希?全部内容,希望文章能够帮你解决Ruby gsub方法 – 接受哈希?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。