Ruby函数中的字符串数组赋值

时间:2015-03-18 21:24:04

标签: ruby-on-rails ruby variable-assignment

我是Ruby新手,对编程很新。不知道为什么string [n] = temp [string.length-(n + 1)]会将temp更改为字符串数组。分配只是改变字符串数组吗?我已经解决了这个问题4个小时,非常感谢任何帮助=)谢谢!

 def reverse(string)
  temp = string
  n=0
  while (string.length - n) > 0 
    string[n]=temp[string.length-(n+1)]
    n+=1
  end
  return string
end

puts reverse("abc")

1 个答案:

答案 0 :(得分:0)

tempstring是同一个对象,因为:

temp = string

因此,对string的任何更改都会反映在temp中。您可以复制字符串变量以避免此问题:

temp = string.dup