type 結構體名稱 struct
type people struct
var peo people
fmt.print(peo)//輸出:
fmt.printf("%p",&peo)//會列印記憶體位址值
var peo people
//按照結構體中屬性的順序進行賦值,可以省略屬性名稱
peo = people
fmt.println(peo)
//明確指定給哪些屬性賦值.可以都賦值,也可以只給其中一部分賦值
peo = people
fmt.println(peo)
var peo people
peo.name="smallming"
peo.age=17
fmt.println(peo)
fmt.println(peo.name)
fmt.println(peo.age)
p1 := people
p2 := people
fmt.printf("%p %p\n", &p1, &p2) //輸出位址不同
fmt.println(p1 == p2) //輸出:true
peo := new(people)
//因為結構體本質是值型別,所以建立結構體指標時已經開闢了記憶體空間
fmt.println(peo == nil) //輸出:false
//由於結構體中屬性並不是指標型別,所以可以直接呼叫
peo.name = "smallming"
fmt.println(peo)//輸出:&
peo1:=peo
peo1.name="佳明哥"
fmt.println(peo1,peo)//輸出:& &
//宣告結構體指標
var peo *people
//給結構體指標賦值
peo = &people
/*上面**使用短變數方式如下
peo:= &people
*/fmt.println(peo)
p1 := people
p2 := people
fmt.printf("%p %p\n", &p1, &p2) //輸出位址不同
fmt.println(p1 == p2) //輸出:true
p3 := new(people)
p3 = &people
//結構體變數不能和指標比較,使用*指標取出位址中值
fmt.println(p1 == *p3) //輸出:true
p4 := &people
//指標比較的是位址
fmt.println(p3 == p4) //輸出:false
func (變數名 結構體型別) 方法名(引數列表) 返回值列表
從上面的解釋可以看出,官方給出可明確說明,方法類似於函式.方法歸屬於特定型別
package main
import (
"first/entity"
)type people entity.people
func main()
type people struct
func (p *people) run()
func main()
peo.run()
fmt.println(peo.name,"跑完步後的體重是",peo.weight)//輸出:張三 跑完步後的體重是 16.9
}
golang結構體與方法
type people inte ce type student struct func stu student speak think string talk string else return func main think speak fmt.println peo.speak think ...
golang基礎 巢狀結構體
如下json返回值該如何解析?values 1612254395,40969232384 1612254995,39823257600 首先要構造出合適的結構體,根據以上返回值構造結構體如下 prometheus 響應體 type vectorresponse struct type prometh...
golang 為結構體新增方法
本節中,將會使用揹包作為 物件 將物品放入揹包的過程作為 方法 通過面向過程的方式和go語言中結構體的方式來理解 方法 的概念。面向過程沒有 方法 概念,只能通過結構體和函式,由使用者使用函式引數和呼叫方式來形成接近 方法 的概念,如下 package main type bag struct fu...