在使用命名参数时如何调用函数?
(如果不清楚什么是命名参数,下面是using them in Python的示例)
我想做的事的例子:
func Add(a int, b int) int {
return a + b
}
func main() {
c := Add(a: 1, b:3)
return c
}
但是,以上内容给了我错误:
unexpected :, expecting comma or )
(在“ a”之后指的是“:”)
答案 0 :(得分:1)
Go没有命名参数。我在转到命名参数中最了解的是使用结构作为输入。因此对于您的示例,您可以-
type Input struct {
A int
B int
}
func Add(in Input) int {
return in.A + in.B
}
func main() {
c := Add(Input{A: 1, B: 3})
return c
}
答案 1 :(得分:1)
简而言之:Go语言不支持命名的args,但IDE支持(见下文)。
我同意命名参数可以在Go中使用。它可以帮助避免错误。例如,就在昨天,我的测试发现了一个错误,其中包含源和目标。 copy()(内置函数)的参数排在前面。
但是,Go可能拥有数百种有用的语言功能。我们尽量避免在语言中添加不必要的功能,以保持简单。在将Go用于大型项目之后,您将不胜感激与其他语言相比要简单得多的事情。 (我已经使用了十多种语言,而Go到目前为止最讨厌。)
但是实际上,如果您的IDE支持,您可以命名参数。例如,我使用GoLand,当您输入函数的参数时,它将在值前用冒号内联显示参数名称(浅灰色)。这甚至比您习惯的更好,因为您甚至不必键入名称!