英文:
How to refer to an unnamed function argument in go?
问题
在Go语言中,函数参数的名称是可选的,这意味着以下代码是合法的:
func hello(string) {
fmt.Println("Hello")
}
func main() {
hello("there")
}
如果你想在foo()
函数中引用第一个参数(声明为string
类型的参数),你可以使用下划线 _
来忽略参数名称。以下是示例代码:
func foo(arg1 string) {
fmt.Println(arg1)
}
你可以在foo()
函数中使用arg1
来引用第一个参数。
英文:
The name of a function parameter in go is optional. meaning the following is legal
func hello(string) {
fmt.Println("Hello")
}
func main() {
hello("there")
}
How can I refer to the 1. argument (declared with a type of string) argument in the
foo() function ?
答案1
得分: 11
未命名参数的唯一用途是在必须定义具有特定签名的函数时使用。例如,我在我的一个项目中有这个例子:
type export struct {
f func(time.Time, time.Time, string) (interface{}, error)
folder string
}
我可以在其中使用这两个函数:
func ExportEvents(from, to time.Time, name string) (interface{}, error)
func ExportContacts(from, to time.Time, _ string) (interface{}, error)
尽管在ExportContacts
的情况下,我没有使用string
参数。实际上,如果不给该参数命名,我无法在这个函数中使用它。
英文:
The only use of unnamed parameters is when you have to define a function with a specific signature. For instance, I have this example in one of my projects:
type export struct {
f func(time.Time, time.Time, string) (interface{}, error)
folder string
}
And I can use both of these functions in it:
func ExportEvents(from, to time.Time, name string) (interface{}, error)
func ExportContacts(from, to time.Time, _ string) (interface{}, error)
Even though in the case of ExportContacts
, I do not use the string
parameter. In fact, without naming this parameter, I have no way of using it in this function.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论