Dans le langage Go, le système de types spécifie la valeur des variables, la sécurité du type et la maintenabilité. Le langage Go adopte un système de types basé sur une structure, permettant la définition de types personnalisés (struct) et d'alias de types. Les types valeur sont déclarés avec le mot-clé var, tandis que les types pointeur ont un astérisque précédant le nom du type. Une interface définit une collection de méthodes et le type qui implémente l'interface doit implémenter toutes les méthodes.
Introduction
Le système de types est la fonctionnalité essentielle de tout langage de programmation, qui spécifie la structure, le fonctionnement et le comportement des valeurs. Le langage Go utilise un système de types basé sur la structure qui met l'accent sur la sécurité et la maintenabilité des types.
Déclaration de type
En langage Go, vous pouvez déclarer des types en utilisant la syntaxe suivante :
type <类型名> <基础类型>
Par exemple, le code suivant déclare un type nommé Person
, qui contient Name< /code> et <code>Age
Deux champs : Person
的类型,其中包含 Name
和 Age
两个字段:
type Person struct { Name string Age int }
值类型和指针类型
Go 语言中的每个值都属于特定的类型,称为其值类型。可以通过使用关键字 var
宣告变量并指定其值类型。
var person Person
Go 语言还支持指针类型,指向另一个类型的变量。可以通过在类型名前加一个星号(*)来创建指针类型。
var personPtr *Person
类型别名和基础类型
类型别名允许为现有的类型创建别名。基础类型是不能再被分解的内置类型,例如 int
、float64
和 string
。
以下代码创建了 FullName
类型的别名,其基础类型是 string
:
type FullName = string
接口
接口是一个类型,定义了一组方法。任何类型只要实现了接口中的所有方法,就可以称为实现该接口。
以下代码定义了一个 Animal
接口,其中包含一个 Speak
方法:
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
类型的值:person1
是一个值类型,而 person2
是一个指向类型为 Person
rrreee
var
. 🎜rrreee🎜Le langage Go prend également en charge les types de pointeurs, qui pointent vers des variables d'un autre type. Les types de pointeurs peuvent être créés en ajoutant un astérisque (*) au nom du type. 🎜rrreee🎜🎜Alias de type et types de base🎜🎜🎜Les alias de type permettent la création d'alias pour les types existants. Les types de base sont des types intégrés qui ne peuvent plus être décomposés, tels que int
, float64
et string
. 🎜🎜Le code suivant crée un alias pour le type FullName
, dont le type sous-jacent est string
: 🎜rrreee🎜🎜Interface 🎜🎜🎜Une interface est un type qui définit un ensemble de méthodes. On peut dire que n'importe quel type implémente l'interface tant qu'il implémente toutes les méthodes de l'interface. 🎜🎜Le code suivant définit une interface Animal
, qui contient une méthode Speak
: 🎜rrreee🎜🎜Cas pratique🎜🎜🎜Ce qui suit est un court exemple utilisant le système de types Go : 🎜rrreee🎜Ce code crée deux valeurs de type Person
: person1
est un type valeur, et person2
est un pointeur de type Pointeur vers la variable de >Personne. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!