将变量名称输入函数

时间:2015-09-30 16:55:32

标签: go

我是Go的新手,我想把这个片段变成一个函数。

基本上,我想知道是否有可能将变量名传递给函数调用,所以如果我调用:

changeColor(varName)

它将运行,然后为原始变量分配一个新值,该值已输入到函数调用中。

希望这是有道理的,并提前感谢

if varName == yellow {
    varName = black
} else {
    varName = yellow
}

1 个答案:

答案 0 :(得分:3)

通过阅读编程语言使用的不同Evaluation Strategies,您可以了解这个概念。在Go中,您可以通过指针实现您正在寻找的行为。

如果没有指针,通常会传递变量的副本。使用指针,您将在内存中传递值的位置的副本。这意味着该函数可以修改已经了解的位置的实际值。

以下是您解释过的示例:

http://play.golang.org/p/ufrEjmXwmB

请记住,这可能不是在真实程序中执行此操作的最佳方法。如果关键是要学习,那就去吧。尝试传递指针指针等等:p