从Go中的函数获取第n个返回值

Rou*_*ouz 5 go

我昨天开始学习Go,到目前为止我很着迷.但我碰到了一个问题.

让我们假设函数返回多个变量(真棒功能).我应该如何仅使用第n个值而不是第一个n-1值?在示例中,我只想检查密钥是否存在于哈希映射中,但不对值进行任何操作.

var value, hasElement = myMap[key]
Run Code Online (Sandbox Code Playgroud)

我得到的错误是

main.go:15: value declared and not used
Run Code Online (Sandbox Code Playgroud)

如果我只是打印它会一切都很好,但这并不好.

Act*_*lis 5

在Go中,角色_是占位符,表示您不关心该值.因此,你可以做到

var _, hasElement = myMap[key]
Run Code Online (Sandbox Code Playgroud)

这将忽略第一个返回值.

这扩展到具有任意数量的返回值的函数:

var a, _, _, d, e, _ = bigFunction()
Run Code Online (Sandbox Code Playgroud)

  • 第一个代码段是无效的Go代码。将map替换为其他变量名称。 (2认同)