【发布时间】:2015-03-18 21:24:04
【问题描述】:
我是 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")
【问题讨论】:
-
临时和字符串是同一个对象。
-
@FrederickCheung,这是参考而不是副本?
-
如果我在
temp = string之后添加puts "string.object_id == #{string.object_id}, temp.object_id == #{temp.object_id}",当我执行reverse("abc")时,会打印以下内容:string.object_id == 70267640537340, temp.object_id == 70267640537340。这能告诉你什么吗?你需要temp = string.dup(虽然我没有看过你的其余代码)。
标签: ruby-on-rails ruby variable-assignment