go語言學習筆記六 結構體

2021-10-23 02:01:36 字數 2623 閱讀 9629

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 也可以被其他包引...