Go 未命名指针返回值的预期标识符

Go 未命名指针返回值的预期标识符,go,Go,gofmt此时给出有关此函数签名的“预期标识符”警告: func foo() (*int, y int) {} ^ 但是,它并不抱怨此签名: func foo() (int, y int) {} 我如何命名一个返回值而不必gofmt抱怨未命名的指针返回值 我如何命名一个返回值而不让gofmt抱怨 未命名指针返回值 空白标识符由下划线字符\表示。信息技术 用作匿名占位符,而不是常规占位符(非空) 标识符,在声明中具有特殊含义,如操作数,以及 在作业中 使用空白标

gofmt
此时给出有关此函数签名的“预期标识符”警告:

func foo() (*int, y int) {}
            ^
但是,它并不抱怨此签名:

func foo() (int, y int) {}
我如何命名一个返回值而不必
gofmt
抱怨未命名的指针返回值

我如何命名一个返回值而不让gofmt抱怨 未命名指针返回值


空白标识符由下划线字符\表示。信息技术 用作匿名占位符,而不是常规占位符(非空) 标识符,在声明中具有特殊含义,如操作数,以及 在作业中


使用空白标识符(<代码> < <代码> >)。比如说,

package main

func foo() (_ *int, y int) { return nil, 0 }

func main() {}

操场:

你不能。您的返回值可以是命名的,也可以是未命名的,但不能两者兼而有之-这在语法上是无效的,在实践中也没有任何意义。@Adrian所说的,也可以不抱怨您的第二种情况,因为
int
是有效的标识符名称,
*
不是。也就是说,在函数
foo
中,标识符
int
将是返回变量,而不是类型()。