溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

go語(yǔ)言漸入佳境[15]-struct聲明與定義

發(fā)布時(shí)間:2020-08-10 01:15:28 來(lái)源:網(wǎng)絡(luò) 閱讀:156 作者:jonson_jackson 欄目:開(kāi)發(fā)技術(shù)

結(jié)構(gòu)體的聲明

1
2
3
4
5
6
//聲明Teacher結(jié)構(gòu)體
type Teacher struct {
name string
age  int8
sex  byte
}

結(jié)構(gòu)體的定義

方式1

//1、var聲明方式實(shí)例化結(jié)構(gòu)體,初始化方式為:對(duì)象.屬性=值

1
2
3
4
var t1 Teacher
t1.name = "jonson"
t1.age = 35
t1.sex = 1

方式2

變量簡(jiǎn)短聲明格式實(shí)例化結(jié)構(gòu)體,初始化方式為:對(duì)象.屬性=值

1
2
3
4
t2 := Teacher{}
t2.name = "olaya"
t2.age = 30
t2.sex = 1

方式3

3、變量簡(jiǎn)短聲明格式實(shí)例化結(jié)構(gòu)體,聲明時(shí)初始化。初始化方式為:屬性:值 。屬性:值可以同行,也可以換行。(類似map的用法)

1
2
3
4
5
6
t3 := Teacher{
 name: "Josh",
 age:  28,
 sex:  1,
}
t3 = Teacher{name: "Josh3", age: 27, sex: 1}

方式4

變量簡(jiǎn)短聲明格式實(shí)例化結(jié)構(gòu)體,聲明時(shí)初始化,不寫屬性名,按屬性順序只寫屬性值

1
t4 := Teacher{"Ruby", 30, 0}

方式5

創(chuàng)建指針類型的結(jié)構(gòu)體

1
2
3
4
5
6
7
t5 := new(Teacher)
(*t5).name = "Running"
(*t5).age = 31
(*t5).sex = 0
t5.name = "Running2"
t5.age = 31
t5.sex = 0

方式6

匿名結(jié)構(gòu)體

1
2
3
addr := struct {
 province, city string
}{"陜西省", "西安市"}

完整代碼

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
package main

import "fmt"

//定義Teacher結(jié)構(gòu)體
type Teacher struct {
name string
age  int8
sex  byte
}

func main() {
//1、var聲明方式實(shí)例化結(jié)構(gòu)體,初始化方式為:對(duì)象.屬性=值
var t1 Teacher
fmt.Println(t1)
fmt.Printf("t1:%T , %v , %q \n", t1, t1, t1)
//if t1 == nil {
// fmt.Println()
//}
t1.name = "Steven"
t1.age = 35
t1.sex = 1
fmt.Println(t1)
fmt.Println("-------------------")

//2、變量簡(jiǎn)短聲明格式實(shí)例化結(jié)構(gòu)體,初始化方式為:對(duì)象.屬性=值
t2 := Teacher{}
t2.name = "David"
t2.age = 30
t2.sex = 1
fmt.Println(t2)
fmt.Println("-------------------")

//3、變量簡(jiǎn)短聲明格式實(shí)例化結(jié)構(gòu)體,聲明時(shí)初始化。初始化方式為:屬性:值 。屬性:值可以同行,也可以換行。(類似map的用法)
t3 := Teacher{
name: "Josh",
age:  28,
sex:  1,
}
t3 = Teacher{name: "Josh3", age: 27, sex: 1}
fmt.Println(t3)
fmt.Println("-------------------")

//4、變量簡(jiǎn)短聲明格式實(shí)例化結(jié)構(gòu)體,聲明時(shí)初始化,不寫屬性名,按屬性順序只寫屬性值
t4 := Teacher{"Ruby", 30, 0}
fmt.Println(t4)
fmt.Println("-------------------")

//5、創(chuàng)建指針類型的結(jié)構(gòu)體
t5 := new(Teacher)
fmt.Printf("t5:%T , %v , %p \n", t5, t5, t5)
//(*t5).name = "Running"
//(*t5).age = 31
//(*t5).sex = 0

//語(yǔ)法簡(jiǎn)寫形式——語(yǔ)法糖
t5.name = "Running2"
t5.age = 31
t5.sex = 0
fmt.Println(t5)
fmt.Println("-------------------")
}

結(jié)構(gòu)體匿名字段

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package main

import "fmt"

type User struct {
//name string
//sex byte
//age int8
//height float64
//weight float64
string
byte
int8
float64

}

func main() {
// 實(shí)例化結(jié)構(gòu)體
user:= User{"jonson" , 'm' , 35 , 177.5}
fmt.Println(user)
//如果想依次輸出姓名、年齡、身高、性別
fmt.Printf("姓名:%s \n" , user.string)
fmt.Printf("身高:%.2f \n" , user.float64)
fmt.Printf("性別:%c \n" , user.byte)
fmt.Printf("年齡:%d \n" , user.int8)
}
  • 本文鏈接: https://dreamerjonson.com/2018/11/26/golang-15-struct/

  • 版權(quán)聲明: 本博客所有文章除特別聲明外,均采用 CC BY 4.0 CN協(xié)議 許可協(xié)議。轉(zhuǎn)載請(qǐng)注明出處!

go語(yǔ)言漸入佳境[15]-struct聲明與定義

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI