我們先宣告乙個狗狗的結構體
type dog struct
// 重寫string介面
func
(dog *dog)
string()
string
第一種 結構體的普通宣告及值拷貝,可以看到輸出的時候並沒有用到string(畢竟不是指標)
func
main()
d2 := d1 //值拷貝
d1.name =
"小喵"
fmt.
println
(d1)
// fmt.
println
(d2)
// }
第二種 結構體的普通宣告及指標淺拷貝,可以看到輸出的時候d1和d3的值是一樣的,但是d1沒有用到string,d3有
func
main()
d3 :=
&d1 //值拷貝
d1.name =
"小喵"
fmt.
println
(d1)
// fmt.
println
(d3)
// this dog's name: 小喵, it's age: 2
}
第三種 結構體的new()宣告及指標的值拷貝,可以看到輸出的時候d1和d3的值是不一樣的
func
main()
結構體中指向指標的指標
include include voidf int a voidf1 int a intmain include include typedef struct nodenode,linknode void f node node1 intmain 判斷能否修改乙個指標的值,關鍵在於判斷這個指標是否已...
Golang結構體和指標
golang是一門很特殊的語言,雖然它出生比較晚,但是在很多地方卻和現在的程式語言有所不同。現在的程式語言要麼是函式式的 要麼是物件導向的,而go語言卻有指標 結構體這些概念,並解決了c語言的一些坑。從這個角度上說,golang可以看做c語言的填坑加強版。定義結構體和c語言一樣,使用struct關鍵...
golang 結構體與指標
1.結構體 結構體是一系列具有指定資料型別的資料型別 就是乙個結構體中儲存多個不同型別的資料字段 用於建立傳遞複雜資料結構 結構體可以理解為物件導向的模板 但是go並非物件導向 結構體只是一種新的資料型別 2.結構體建立 結構體例項的資料字段不賦值 預設就是該型別的零值 巢狀結構體可以完成更為複雜的...