結構體是由一系列具有相同型別或不同型別的資料構成的資料集合。
結構體定義需要使用 type 和 struct 語句。舉個栗子:
type books struct
variable_name := structure_variable_type
// 或
variable_name := structure_variable_type
舉個栗子:
book1 := books
book2 := books //忽略的字段為 0 或 null
// 定義結構體指標
var book_pointer *books
// 以上定義的指標變數可以儲存結構體變數的位址
book_pointer = &book1
// 使用結構體指標訪問結構體成員,使用 "." 操作符
book_pointer.title
func update1(book common.books)
func update2(bookptr *common.books)
func main()
fmt.println("main: book.price", book.price)
update1(book)
fmt.println("main: book.price", book.price)
update2(&book)
fmt.println("main: book.price", book.price)
}
// 執行結果為books型別繫結updateprice的方法,*books為指標引用可以修改傳入引數的值。main: book.price 0
update1: book.price 20
main: book.price 0
update2: book.price 21
main: book.price 21
注意:方法歸屬於型別,不歸屬於具體的物件,宣告該型別的物件即可呼叫該型別的方法。
func (bookptr *books) updateprice() float64
// 呼叫
newprice := book.updateprice()
首字母大寫相當於 public;首字母小寫相當於 private。
q:那這樣 json 字串以後就只能是大寫了麼?
a:當然不是,可以使用 tag 標記要返回的欄位名。舉個栗子:
type person struct
func main()
if result, err := json.marshal(&person); err==nil
}
// 執行結果
go結構體的學習和使用
package main go語言組合的思想很重,資料之間如果要傳承 需要將陣列組合進來 go有指標的概念,但是並沒有指標運算子 import fmt const animal cat 0 animal mouse 1 animal dog 2 go語言的介面 type animal inte ce...
go 結構體指標方法與結構體方法的區別
package main import fmt type person struct func v person modifyname name string func main xiaoming.modifyname 小李 fmt.println xiaoming.name 輸出結果如下 c us...
Go語言的結構體
與c相同,go的結構體是零個或多個任意型別的命名變數組合在一起的聚合資料型別,每個變數叫做結構體的成員。結構體的每個成員都通過點號來訪問。定義結構體時,成員通常一行寫乙個,但相同型別的成員也可以寫在同一行上。但需要注意的是 成員的順序對於結構體同一性很重要,如果我們將變數的定義順序調換或者將本來單行...