1. 程式人生 > 其它 >go語言結構體

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)

}