私は Goのツアー を読んでいます Go-Lang を読んでいて、これまでのところうまくいきます。
私は現在 Struct Fields レッスンを行っており、右側のサンプルコードは次のとおりです。
package main
import "fmt"
type Vertex struct {
X int
Y int
}
func main() {
v := Vertex{1, 2}
v.X = 4
fmt.Println(v.X)
}
3行目を見てください。
type Vertex struct {
これを理解できません、type
キーワードは何をするのですか、なぜそこにあるのですか?
type
キーワードは、新しいタイプを作成するためにあります。これは type definition と呼ばれます。新しいタイプ(あなたの場合、Vertex)は、基礎となるタイプ(XとYを持つ構造体)と同じ構造になります。その行は基本的に「X intとY intの構造体に基づいてVertexと呼ばれる型を作成する」と言っています。
型定義と型エイリアスを混同しないでください。新しい型を宣言すると、単に新しい名前を付けるだけでなく、特殊な型と見なされます。この件の詳細については、 type identity を参照してください。
新しいタイプを定義するために使用されます。
一般的なフォーマット:
_type <new_type> <existing_type or type_definition>
_
一般的な使用例:
type <new_type> <existing_type>
_type Seq []int
_type <new_type> struct { /*...*/}
_type <FuncName> func(<param_type_list>) <return_type>
type AdderFunc func(int, int) int
あなたの場合:
新しい構造体に対してVertex
という名前の型を定義しているため、後でVertex
を介して構造体を参照できます。