Aller à la structure du langage
Les tableaux en langage Go peuvent stocker le même type de données, mais dans les structures, nous pouvons définir différents types de données pour différents éléments.
Une structure est une collection de données composée d'une série de données du même type ou de types différents. La structure
représente un enregistrement, comme la sauvegarde des enregistrements d'un livre dans une bibliothèque. Chaque livre a les attributs suivants :
Titre : Titre
<. 🎜>- Auteur : Auteur
- Sujet : Sujet
- ID : ID du livre
Définir la structureLa définition de la structure nécessite l'utilisation d'instructions de type et de structure. L'instruction struct définit un nouveau type de données et la structure comporte un ou plusieurs membres. L'instruction type définit le nom de la structure. Le format de la structure est le suivant :
type struct_variable_type struct { member definition; member definition; ... member definition; }Une fois le type de structure défini, il peut être utilisé pour la déclaration des variables. Le format de la syntaxe est le suivant :
variable_name := structure_variable_type {value1, value2...valuen}
Accès à la structure. membres
Si vous souhaitez accéder aux membres de la structure, vous devez utiliser l'opérateur point (.), au format : "structure.member name". Les variables de type structure sont définies à l'aide du mot-clé struct. L'exemple est le suivant :
package main import "fmt" type Books struct { title string author string subject string book_id int } func main() { var Book1 Books /* 声明 Book1 为 Books 类型 */ var Book2 Books /* 声明 Book2 为 Books 类型 */ /* book 1 描述 */ Book1.title = "Go 语言" Book1.author = "www.php.cn" Book1.subject = "Go 语言教程" Book1.book_id = 6495407 /* book 2 描述 */ Book2.title = "Python 教程" Book2.author = "www.php.cn" Book2.subject = "Python 语言教程" Book2.book_id = 6495700 /* 打印 Book1 信息 */ fmt.Printf( "Book 1 title : %s\n", Book1.title) fmt.Printf( "Book 1 author : %s\n", Book1.author) fmt.Printf( "Book 1 subject : %s\n", Book1.subject) fmt.Printf( "Book 1 book_id : %d\n", Book1.book_id) /* 打印 Book2 信息 */ fmt.Printf( "Book 2 title : %s\n", Book2.title) fmt.Printf( "Book 2 author : %s\n", Book2.author) fmt.Printf( "Book 2 subject : %s\n", Book2.subject) fmt.Printf( "Book 2 book_id : %d\n", Book2.book_id) }Le résultat de l'exécution de l'exemple ci-dessus est :
Book 1 title : Go 语言 Book 1 author : www.php.cn Book 1 subject : Go 语言教程 Book 1 book_id : 6495407 Book 2 title : Python 教程 Book 2 author : www.php.cn Book 2 subject : Python 语言教程 Book 2 book_id : 6495700
Structure as. paramètre de fonctionVous pouvez transmettre des types de structure en tant que paramètres aux fonctions, tout comme les autres types de données. Et accédez à la variable de structure à la manière de l'exemple ci-dessus :
package main import "fmt" type Books struct { title string author string subject string book_id int } func main() { var Book1 Books /* 声明 Book1 为 Books 类型 */ var Book2 Books /* 声明 Book2 为 Books 类型 */ /* book 1 描述 */ Book1.title = "Go 语言" Book1.author = "www.php.cn" Book1.subject = "Go 语言教程" Book1.book_id = 6495407 /* book 2 描述 */ Book2.title = "Python 教程" Book2.author = "www.php.cn" Book2.subject = "Python 语言教程" Book2.book_id = 6495700 /* 打印 Book1 信息 */ printBook(Book1) /* 打印 Book2 信息 */ printBook(Book2) } func printBook( book Books ) { fmt.Printf( "Book title : %s\n", book.title); fmt.Printf( "Book author : %s\n", book.author); fmt.Printf( "Book subject : %s\n", book.subject); fmt.Printf( "Book book_id : %d\n", book.book_id); }Le résultat de l'exécution de l'exemple ci-dessus est :
Book title : Go 语言 Book author : www.php.cn Book subject : Go 语言教程 Book book_id : 6495407 Book title : Python 教程 Book author : www.php.cn Book subject : Python 语言教程 Book book_id : 6495700
Pointeur de structureVous pouvez définir un pointeur vers la structure Le pointeur est similaire aux autres variables pointeurs, et le format est le suivant :
var struct_pointer *BooksLa variable pointeur définie ci-dessus peut stocker l'adresse de la variable structure. Pour afficher l'adresse de la variable de structure, vous pouvez placer le symbole & devant la variable de structure :
struct_pointer = &Book1;Utilisez le pointeur de structure pour accéder aux membres de la structure, utilisez l'opérateur "." >Ensuite, réécrivons l'exemple ci-dessus en utilisant un pointeur de structure. Le code est le suivant :
struct_pointer.title;Le résultat de l'exécution de l'exemple ci-dessus est :
package main import "fmt" type Books struct { title string author string subject string book_id int } func main() { var Book1 Books /* Declare Book1 of type Book */ var Book2 Books /* Declare Book2 of type Book */ /* book 1 描述 */ Book1.title = "Go 语言" Book1.author = "www.php.cn" Book1.subject = "Go 语言教程" Book1.book_id = 6495407 /* book 2 描述 */ Book2.title = "Python 教程" Book2.author = "www.php.cn" Book2.subject = "Python 语言教程" Book2.book_id = 6495700 /* 打印 Book1 信息 */ printBook(&Book1) /* 打印 Book2 信息 */ printBook(&Book2) } func printBook( book *Books ) { fmt.Printf( "Book title : %s\n", book.title); fmt.Printf( "Book author : %s\n", book.author); fmt.Printf( "Book subject : %s\n", book.subject); fmt.Printf( "Book book_id : %d\n", book.book_id); }.