package main
import
"fmt"
//結構體指標
/*資料型別: int , float , bool , string , array
引用型別: slice , map , function , pointer
*//*
建立指標:
new() , 不是nil,空指標
指向了新分配的型別的記憶體空間,裡面儲存的是零值.
*///1.結構體是值傳遞
func
main()
fmt.
println
(p1)
// fmt.
printf
("%p,%t\n"
,&p1,p1)
//0xc0000bc040,main.person
p2 := p1
fmt.
println
(p2)
// fmt.
printf
("%p,%t\n"
,&p2,p2)
//0xc0000bc100,main.person
p2.name =
"狗子"
fmt.
println
(p2)
// fmt.
println
(p1)
////2.定義結構體指標
var pp1 *person
pp1 =
&p1 fmt.
println
(pp1)
//& fmt.
printf
("%p,%t\n"
,pp1,pp1)
//0xc0000bc040,*main.person
fmt.
println
(*pp1)
////(*pp1).name = "張三"
pp1.name =
"張三"
fmt.
println
(pp1)
//& fmt.
println
(p1)
////使用new(),go語言中專門用於建立某種型別的指標的函式
pp2 :=
new(person)
fmt.
printf
("%t\n"
,pp2)
//*main.person
pp2.name =
"李四"
pp2.age =
20 pp2.*** =
"男" pp2.address =
"中國"
fmt.
println
(pp2)
//&}
type person struct
結果:
0xc000076040
,main.person
0xc000076100
,main.person
&0xc000076040
,*main.person
&*main.person
&
go語言 結構體及結構體指標
結構體 struct 是由一系列具有相同型別或不同型別的資料構成的資料集合,也叫結構。可以理解為其他程式語言中的類 結構體既可以定義在函式內,也可以定義在函式外,函式外為全域性結構體可以跨包訪問 前提是結構體首字母大寫 結構體變數是值型別,可以使用fmt.printf p 結構體變數 來檢視其記憶體...
Go 結構體,結構體指標和方法
結構體 講乙個或多個變數組合到一起形成新的型別,這個型別就是結構體,結構體是值型別 定義結構體和賦值 learn go main.go package main import fmt type people struct func main fmt.printf p peo 0x110040f0 賦...
go 結構體指標方法與結構體方法的區別
package main import fmt type person struct func v person modifyname name string func main xiaoming.modifyname 小李 fmt.println xiaoming.name 輸出結果如下 c us...