2

私は行くのが初めてで、 A Tour of Go をいじり始めました。関数に名前を付けることはできます_が、その関数を呼び出すことはできません。

import "fmt"

type sel struct {
    s string
}

func _(s string) sel {
    return sel{s}
}

func main() {
    fmt.Println("Hello")
    _("foo") // <-- does not compile
}

行全体にコメントを_("foo")付けると、プログラムはコンパイルされます。

私の質問は、関数名に使用できる文字は何ですか? 英数字のみ$ですか、それともたとえば使用できますか?

構造体、インターフェースなど、他のものに名前を付ける規則は、関数の規則と同じですか?

4

2 に答える 2

10

スペックから

アンダースコア文字 _ で表される空白の識別子は、他の識別子と同様に宣言で使用できますが、宣言は新しいバインディングを導入しません。

これは、コードが有効だった理由を説明していますが、呼び出された関数を呼び出すことができませんでした_

_変数を割り当てたいが無視したいときにGoで使用されます。関数 _ を呼び出すと、まったく同じことが行われます - あなたはそれを定義しましたが、コンパイラはそれを無視します。

于 2012-07-27T16:22:15.357 に答える
6

仕様では、func、var、または const の名前は (または) で始まる必要があり、任意の ( 、または) で終わることができます。unicode_letter_unicode_letterunicode_digit_

unicode_letter必要に応じて、中国語またはヘブライ文字にすることができます。

于 2012-07-27T14:26:45.600 に答える