TryRuby为字符串引发未定义的方法“ [] =”

时间:2018-06-25 13:57:58

标签: ruby string replace

我正在努力替换字符串中的字符,将"cat"更改为"hat"

这是我的代码:

str = "cat"
str[0] = 'h'
puts str 

但是当我在TryRuby中运行此代码时,出现此错误:

  

NoMethodError:“猫”的未定义方法`[] ='

2 个答案:

答案 0 :(得分:6)

  

我正在使用Try ruby​​的编辑器

ruby.github.io/TryRuby使用Opal(一种Ruby-to-JavaScript编译器)在浏览器中评估代码。 Opal提供了自己的String类,但未实现[]=

(除其他外)这似乎是已知的限制。来自documentation :(添加了重点)

  

为了提高性能和简化运行时功能, Opal中的所有字符串都是不可变的,即#<<,#gsub!等不存在。

答案 1 :(得分:0)

您可以使用gsub方法并执行以下操作:

str = 'cat'

puts str.gsub(str[0], 'h')