go - 在函数中输入变量名

标签 go

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

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

改变颜色(变量名)

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

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

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

最佳答案

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

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

这是一个执行您所解释的操作的示例:

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

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

关于go - 在函数中输入变量名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32871719/

相关文章:

go - 使用依赖注入(inject)测试包装函数

go - Go 中类似 getopt 的行为

go - 将 HTTP 响应正文写入文件后出现 EOF 错误

json - 去图表动态数据

python - Google App Engine mail.Send 在 python2.7/smtplib.py 中返回 "TypeError: unhashable instance"

go - 管道多个命令然后写入文件

docker - 使用 Go 访问远程 docker 存储库

go - 在测试 golang 期间 stub time.Now() ?

go - 在 struct 的元素上调用一个函数,它是一个 nil 指针

go - 检查文件是否被压缩/压缩的推荐方法