go語言結構體
go語言中陣列可以儲存同一類的資料型別,但在結構體中我們可以為不同項定義的資料型別。
結構體是由一系列具有相同型別或不同型別的資料構成的資料集合。
結構體表示一項記錄,比如儲存圖書館的書籍記錄,每本書有以下特性
title:標題
Author :作者
Subject:學科
ID:書籍ID
定義結構體
結構體定義需要使用 type和struct語句,struect語句定義一個新的資料型別,結構體中有一個或多個成員。type語句設定了結構體的名稱。結構體的格式如下:
type struct_type struct{
member definition
member definition
...
member definition
}
一旦定義了結構體型別,它就能用於變數的宣告,語法格式如下:
variable_name := struct_type{value1,value2...valuen}
或
variable_name := struct_type{key1:value1,key2:value2...,keyn:valuen}
例項
package main
import "fmt"
type Books struct{
title string
author string
subject string
book_id int
}
func main(){
fmt.println(Books{"Go 語言","www.runoob.com","Go 語言教程",6495407}) //建立一個新的結構體
fmt.println(Books{title:"GO 語言",author:"www.runoob",subject:"Go 語言教程",book_id:"6495407"}) // 也可以使用key=》value格式
fmt.Println(Books{title:"Go 語言",author:"www.runoob.com"}) //忽略的欄位為0
}
訪問結構體成員
格式為 結構體·成員名
結構體型別變數使用struct關鍵字定義,示例如下:
例項
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.runoob.com"
Book1.subject="Go 語言教程"
Book1.book_id=6495407
/* book 2 描述 */
Book2.title="Python 教程"
Book2.author="www.runoob.com"
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)
}