@kyanny's blog

自分の不名誉になるような考えを最初に大胆に表明することは、自立への第一歩となる - ニーチェ ドイツ哲学者

Go: named return values, naked return, mixed named and unnamed function parameters

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