Pet*_*r-W 2 ruby string function
为什么var在执行函数后,传递给以下代码中的函数的变量发生了变化?
def my_func(my_var)
out_var = my_var
out_var[3]="STUFF"
return out_var
end
var = "Testing"
puts my_func(var)
puts var
Run Code Online (Sandbox Code Playgroud)
输出:
TesSTUFFing
TesSTUFFing
Run Code Online (Sandbox Code Playgroud)
为什么"var"被改变了?有人可以向我解释一下吗?
在Ruby中,变量通过引用传递.
您必须显式克隆变量:
def my_func(my_var)
out_var = my_var.clone
out_var[3]="STUFF"
out_var
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
80 次 |
| 最近记录: |