Pergi struktur bahasa
Array dalam bahasa Go boleh menyimpan jenis data yang sama, tetapi dalam struktur kita boleh menentukan jenis data yang berbeza untuk item yang berbeza.
Struktur ialah pengumpulan data yang terdiri daripada satu siri data daripada jenis yang sama atau jenis yang berbeza. Struktur
mewakili rekod, seperti menyimpan rekod buku dalam perpustakaan Setiap buku mempunyai atribut berikut:
Tajuk: Tajuk
<. 🎜>- Pengarang: Pengarang
- Subjek: Subjek
- ID: ID Buku
Takrifkan strukturTakrifan struktur memerlukan penggunaan jenis dan pernyataan struktur. Pernyataan struct mentakrifkan jenis data baharu, dan struktur mempunyai satu atau lebih ahli. Pernyataan jenis menetapkan nama struktur. Format struktur adalah seperti berikut:
type struct_variable_type struct { member definition; member definition; ... member definition; }Setelah jenis struktur ditakrifkan, ia boleh digunakan untuk pengisytiharan pembolehubah Format sintaks adalah seperti berikut:
variable_name := structure_variable_type {value1, value2...valuen}
Mengakses struktur. ahli
Jika anda ingin mengakses ahli struktur, anda perlu menggunakan pengendali titik (.), dalam format: "struktur.nama ahli". Pembolehubah jenis struktur ditakrifkan menggunakan kata kunci struct Contohnya adalah seperti berikut:
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) }Hasil pelaksanaan contoh di atas ialah:
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
Struktur sebagai parameter fungsiAnda boleh menghantar jenis struktur sebagai parameter kepada fungsi sama seperti jenis data lain. Dan akses pembolehubah struktur dengan cara contoh di atas:
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); }Hasil pelaksanaan contoh di atas ialah:
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
Penunjuk strukturAnda boleh menentukan penunjuk kepada struktur Penunjuk adalah serupa dengan pembolehubah penunjuk lain, dan formatnya adalah seperti berikut:
var struct_pointer *BooksPembolehubah penunjuk yang ditakrifkan di atas boleh menyimpan alamat pembolehubah struktur. Untuk melihat alamat pembolehubah struktur, anda boleh meletakkan simbol & di hadapan pembolehubah struktur:
struct_pointer = &Book1;Gunakan penunjuk struktur untuk mengakses ahli struktur, gunakan operator "." >Seterusnya mari Kita menulis semula contoh di atas menggunakan penunjuk struktur Kodnya adalah seperti berikut:
struct_pointer.title;Hasil pelaksanaan contoh di atas ialah:
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); }