Go 言語では、型システムは変数の値、型の安全性、保守性を指定します。 Go 言語は構造ベースの型システムを採用しており、カスタム型 (構造体) と型エイリアスの定義が可能です。値型はキーワード var を使用して宣言されますが、ポインター型には型名の前にアスタリスクが付いています。インターフェイスはメソッドのコレクションを定義し、インターフェイスを実装する型はすべてのメソッドを実装する必要があります。
はじめに
型システムは、Go 言語の中核となる機能です。プログラミング言語。値の構造、操作、および動作を指定します。 Go 言語は、型の安全性と保守性を重視した構造ベースの型システムを使用します。
型宣言
Go 言語では、次の構文を使用して型を宣言できます。
type <类型名> <基础类型>
たとえば、次のコードは型を宣言します。名前付き Person
のタイプ。 Name
と Age
の 2 つのフィールドが含まれます。
type Person struct { Name string Age int }
値のタイプとポインターのタイプ
Go 言語のすべての値は、値の型と呼ばれる特定の型に属します。キーワード var
を使用して、変数を宣言し、その値の型を指定できます。
var person Person
Go 言語は、別の型の変数を指すポインター型もサポートしています。ポインター型は、型名の前にアスタリスク (*) を追加することで作成できます。
var personPtr *Person
型のエイリアスと基本型
型のエイリアスを使用すると、既存の型のエイリアスを作成できます。基本型は、int
、float64
、string
など、分解できない組み込み型です。
次のコードは、基礎となる型が string
である FullName
型のエイリアスを作成します。
type FullName = string
Interface
インターフェイスは、一連のメソッドを定義する型です。インターフェイス内のすべてのメソッドを実装している限り、どの型でもインターフェイスを実装していると言えます。
次のコードは、Speak
メソッドを含む Animal
インターフェイスを定義します。
type Animal interface { Speak() }
実用的なケース
以下は、Go 型システムを使用した短い例です:
package main type Person struct { Name string Age int } func main() { person1 := Person{"John", 30} // 值类型 person2 := &Person{"Jane", 35} // 指针类型 fmt.Println(person1.Name) fmt.Println(*person2.Name) }
このコードは、型 person
の 2 つの値を作成します: person1
は値型です, そして person2
は person
型の変数へのポインターです。
以上がGo 言語の型システムを探索するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。