go語言基礎 結構體的 型別和拷貝

2021-08-19 13:38:34 字數 1004 閱讀 8817

結構體的型別:值型別

預設是深拷貝

結構體指標

packagemain

import"fmt"

typeperson2struct

funcmain()

淺拷貝:

指標:p2:=new(person)

p3:= &p1

*/p1 := person2

fmt.printf("%p\n"

, &p1) //0xc0420023e0

p2 := p1 //值型別,深拷貝

fmt.printf("%p\n"

,&p2)

p2.name="王二狗狗"

fmt.println(p1)

fmt.println(p2)

//定義乙個指標,淺拷貝

p3:= &p1 // 將p1的位址給p3

fmt.printf("%t\n"

, p3) //*main.person2

p3.name ="李小花"

fmt.println(p1)

fmt.println(p3)

fmt.println(*p3)

p4 := new(person2) // 指標

fmt.printf("%t\n"

,p4) //*main.person2

p4.name="rose"

p4.age = 30

fmt.println(*p4) //

fmt.printf("%p,%p\n"

, &p4, p4) //0xc042062020,0xc04203e4a0

p6:=p4 //

p6.name = "jack"

fmt.println(p4)

fmt.println(p6)

}

go語言基礎 匿名結構體

結構體和函式一樣,也可以使用匿名結構體 使用匿名結構體也要直接賦值給變數,不要沒法使用 匿名結構體和匿名字段 沒有名字的結構體 a struct func type a struct b a b.string,b.int 匿名字段可以理解為欄位名和字段型別一致 packagemain import ...

go語言基礎 結構體巢狀

go語言當中的聚合和繼承都是模擬出來的,子類是可以使用父類裡的字段或功能 結構體的巢狀 type a struct type b struct type c struct b b b.a.name,c c b.name,packagemain import fmt typeperson5struct...

Go基礎(複雜型別) 結構體

乙個結構體 struct 就是乙個欄位的集合。而 type 的含義跟其字面意思相符。下面來寫乙個簡單的例子 package main import fmt 乙個結構體就是乙個欄位的集合 type vertex struct func main 輸出結果 結構體欄位使用點號來訪問。package ma...