gpt4 book ai didi

Ruby:传递给函数的变量被更改

转载 作者:数据小太阳 更新时间:2023-10-29 08:17:41 27 4
gpt4 key购买 nike

为什么下面代码中传递给函数的变量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

输出:

TesSTUFFing
TesSTUFFing

为什么“var”被改变了?有人可以给我解释一下吗?

最佳答案

在 Ruby 中,变量是通过引用传递的。

您必须显式克隆变量:

def my_func(my_var)
out_var = my_var.clone
out_var[3]="STUFF"
out_var
end

关于Ruby:传递给函数的变量被更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10754904/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com