1.結構體 自定義的資料型別 值型別
package main
import
"fmt"
// 定義乙個cat結構體 type 結構體名稱 struct
// 結構體名稱和字段首字母大寫可以被其他包使用,小寫為私有
// 結構體的字段型別為:指標,slice,和map的零值為 nil 即沒有分配空間
// 例項化使用的時候需要使用make建立
type cat struct
func
main()
輸出1.cat1位址:
0xc00005a180
;cat2位址:
0xc00005a1e0n;cat3位址:
0xc00005a240
;cat4:
0xc00000e028
2.cat1 name: 小白 age:
10 color: 白色 hobby: 吃
3.cat2 name: age:
0 color: hobby:
4.cat3 name: 小白 age:
10 color: 白色 hobby: 吃
5.cat4 name: 小白 age:
10 color: 白色 hobby: 吃
修改cat3的name
6.cat1 name: 小白 age:
10 color: 白色 hobby: 吃
7.cat3 name: 黑貓 age:
10 color: 白色 hobby: 吃
8.cat4 name: 小白 age:
10 color: 白色 hobby: 吃
修改cat4的name
9.cat1 name: 花貓 age:
10 color: 白色 hobby: 吃
10.cat3 name: 黑貓 age:
10 color: 白色 hobby: 吃
11.cat4 name: 花貓 age:
10 color: 白色 hobby: 吃
12.cat1.m1位址:
&map
cat1.m1值:
map[
]13.cat1.m1值:
map[key1:1]
14.cat1.s1值:
15.cat1.s1值:[0
0000
]16.cat1.s1值:
[10000
00]17.cat1.par位址:
0xc00005a1b8 cat1.par值:
018.cat1.par位址:
0xc00005a1b8 cat1.par值:
99
2.結構體的四種建立總結package main
import
"fmt"
// 定義乙個cat結構體 type 結構體名稱 struct
// 結構體名稱和字段首字母大寫可以被其他包使用,小寫為私有
// 結構體的字段型別為:指標,slice,和map的零值為 nil 即沒有分配空間
// 例項化使用的時候需要使用make建立
type cat struct
func
main()
// 等價於 cat2 := cat
cat2.name =
"小黑"
// 方式3 cat3 是乙個指標
var cat3 *cat =
new(cat)
// 標準賦值寫法
(*cat3)
.name =
"小黃"
// 等價於 cat3.name = "小黃"
// 方式4
var cat4 *cat =
&cat
(*cat4)
.name =
"小綠"
// 等價於 cat4.name = "小綠"
fmt.
printf
("cat1位址%p\ncat2位址%p\ncat3位址%p\ncat4位址%p\n"
,&cat1,
&cat2,
&cat3,
&cat4)
fmt.
println
("\n1.cat1 name:"
, cat1.name)
fmt.
println
("2.cat2 name:"
, cat2.name)
fmt.
println
("3.cat3 name:"
, cat3.name)
fmt.
println
("4.cat4 name:"
, cat4.name)
}
輸出cat1位址0xc000052180
cat2位址0xc0000521e0
cat3位址0xc00000e028
cat4位址0xc00000e030
1.cat1 name: 小白
2.cat2 name: 小黑
3.cat3 name: 小黃
4.cat4 name: 小綠
go語言學習筆記 結構體
go語言中,結構體的宣告非常類似c語言,具體定義方法如下 初始化方法有三種 package main import fmt 定義乙個結構體型別 type student struct func main fmt.println s1 s1 2.部分成員初始化,未初始化的變數被賦值為0 s2 stud...
go語言學習筆記 struct結構體
理解 用來自定義資料結構,把需要的有關聯的字段集合到一起,有點型別map的key value形式,還支援巢狀 宣告乙個結構體並使用 宣告 type stu struct stu1 stu 不需要指定欄位的使用方式 stu2 stu fmt.println stu1,stu2 輸出 忽略欄位名的情況下...
go語言學習12(結構體)
格式 type 結構體名稱 struct 結構體如果需要匯出到其他包用,則名字首字母需要大寫 結構體中成員如果需要在其他包中引用,也需要首字母大寫。例如 type teststruct struct 上面結構體名 teststruct 可以被其他包引用 同理其成員 fieldout 也可以被其他包引...