我是Go的新手,我想把这个片段变成一个函数。
基本上,我想知道是否有可能将变量名传递给函数调用,所以如果我调用:
changeColor(varName)
它将运行,然后为原始变量分配一个新值,该值已输入到函数调用中。
希望这是有道理的,并提前感谢
if varName == yellow {
varName = black
} else {
varName = yellow
}
答案 0 :(得分:3)
通过阅读编程语言使用的不同Evaluation Strategies,您可以了解这个概念。在Go中,您可以通过指针实现您正在寻找的行为。
如果没有指针,通常会传递变量的副本。使用指针,您将在内存中传递值的位置的副本。这意味着该函数可以修改已经了解的位置的实际值。
以下是您解释过的示例:
http://play.golang.org/p/ufrEjmXwmB
请记住,这可能不是在真实程序中执行此操作的最佳方法。如果关键是要学习,那就去吧。尝试传递指针指针等等:p