A Tour of Go: Named return values にあるように、関数の戻り値の型に加えて変数名も書ける。これを named return values と呼ぶ。
Named return values を使っている関数内では引数無しで return
できる。これを naked return と呼ぶ。
しかし、関数定義で named return values を使う場合、全ての戻り値に変数名を指定する必要がある。以下のコードは syntax error: mixed named and unnamed function parameters
エラーになる。
package main import ( "fmt" ) func f() (s string, error) { return "hi", nil } func main() { fmt.Println("Hello, playground") f() }
https://play.golang.org/p/LDj7gyZdl_f
エラーを回避するには変数名を指定すれば良い。どうしても変数名を指定したくない場合は _
が使える。
package main import ( "fmt" ) func f() (s string, _ error) { return "hi", nil } func main() { fmt.Println("Hello, playground") f() }
https://play.golang.org/p/Xeo14U5o1sN
参考
Yes, the form for eliding individual names requires and explicit _
func (_ int, y int) int