真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Go語言中結(jié)構(gòu)體如何使用-創(chuàng)新互聯(lián)

本篇文章為大家展示了Go語言中結(jié)構(gòu)體如何使用,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

創(chuàng)新互聯(lián)建站堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的惠民網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

結(jié)構(gòu)體
Go語言中的基本數(shù)據(jù)類型可以表示一些事物的基本屬性,但是當(dāng)我們想表達(dá)一個(gè)事物的全部或部分屬性時(shí),這時(shí)候基本數(shù)據(jù)類型就無法滿足需求了。
Go語言提供了一種自定義數(shù)據(jù)類型,可以封裝多個(gè)基本數(shù)據(jù)類型,這種數(shù)據(jù)類型叫結(jié)構(gòu)體(struct)。
我們可以通過struct來定義自己的類型了。
Go語言中通過struct來實(shí)現(xiàn)面向?qū)ο蟆?br/>2.1結(jié)構(gòu)體的定義
使用type和struct關(guān)鍵字來定義結(jié)構(gòu)體,具體代碼格式如下:

type 類型名 struct {
 字段名 字段類型
 字段名 字段類型
 …
}

其中:
類型名:標(biāo)識(shí)自定義結(jié)構(gòu)體的名稱,在同一個(gè)包內(nèi)不能重復(fù)。
字段名:表示結(jié)構(gòu)體字段名。結(jié)構(gòu)體中的字段名必須。
字段類型:表示結(jié)構(gòu)體字段的具體類型。
舉個(gè)例子,我們定義一個(gè)Person結(jié)構(gòu)體,代碼如下:
type Person struct {
 name string
 city string
 age int8
}

同樣類型的字段可以卸載一行
type Person struct {
 name,city string
 age int8
}

這樣我們就擁有了一個(gè)Person的自定義類型,它有name,city,age三個(gè)字段,分別表示姓名,城市和年齡。
這樣我們就能使用Person結(jié)構(gòu)體存儲(chǔ)人的信息了。

語言內(nèi)置的數(shù)據(jù)類型是用來描述一個(gè)值得,結(jié)構(gòu)體是用來描述一組值的。
比如一個(gè)人有名字,年齡和居住城市等,本質(zhì)上是一種聚合型的數(shù)據(jù)類型。
2.2結(jié)構(gòu)體實(shí)例化
只有當(dāng)結(jié)構(gòu)體實(shí)例化時(shí),才會(huì)真正的分配內(nèi)存。即必須實(shí)例化后才能使用結(jié)構(gòu)體的字段。
結(jié)構(gòu)體本身也是一種類型,我們可以像聲明內(nèi)置類型一樣使用var關(guān)鍵字聲明結(jié)構(gòu)體類型。

var 結(jié)構(gòu)體實(shí)例 結(jié)構(gòu)體類型
2.2.1結(jié)構(gòu)體基本實(shí)例化
通過"."來訪問結(jié)構(gòu)體的字段,例如person1.name和person1.age

package mainimport "fmt"type Person struct {    name,city string    age int8}func main() {    var person1 Person    person1.name="vita"    person1.city="ShangHai"    person1.age=27    fmt.Printf("p1=%v\n",person1)    fmt.Printf("p1=%#v\n",person1)}結(jié)果:p1={vita ShangHai 27}p1=main.Person{name:"vita", city:"ShangHai", age:27}Process finished with exit code 0

2.2.2匿名結(jié)構(gòu)體
在定義一些臨時(shí)數(shù)據(jù)結(jié)構(gòu)時(shí),可以使用匿名結(jié)構(gòu)體。

package mainimport "fmt"func main() {    var person2 struct{name string;age int}    person2.name="vita"    person2.age=27    fmt.Printf("p1=%v\n",person2)    fmt.Printf("p1=%#v\n",person2)}結(jié)果:p1={vita 27}p1=struct { name string; age int }{name:"vita", age:27}Process finished with exit code 0

2.2.3創(chuàng)建指針類型結(jié)構(gòu)體
我們還可以通過new關(guān)鍵字對(duì)結(jié)構(gòu)體進(jìn)行實(shí)例化,得到的是結(jié)構(gòu)體的地址。
package main

import "fmt"
type Person struct {
 name string
 city string
 age int
}
func main() {
 var person3 = new(Person)
 fmt.Printf("%T\n",person3)
 fmt.Printf("p3=%#v\n",person3)
 person3.name="vita"
 person3.age=27
 fmt.Printf("p3=%v\n",person3)
 fmt.Printf("p3=%#v\n",person3)
}

結(jié)果:
*main.Person
p3=&main.Person{name:"", city:"", age:0}
p3=&{vita 27}
p3=&main.Person{name:"vita", city:"", age:27}

Process finished with exit code 0

從打印結(jié)果可以看到,p3是一個(gè)結(jié)構(gòu)體指針。
Go語言中支持對(duì)結(jié)構(gòu)體指針直接使用"."訪問結(jié)構(gòu)體成員。
2.2.4取結(jié)構(gòu)體的地址實(shí)例化
使用&對(duì)結(jié)構(gòu)體進(jìn)行取地址操作相當(dāng)于對(duì)該結(jié)構(gòu)體進(jìn)行了一次new實(shí)例化操作。

package mainimport "fmt"type Person struct {    name string    city string    age int}func main() {    var person4 = &Person{}    fmt.Printf("%T\n",person4)    fmt.Printf("p4=%#v\n",person4)    person4.name="vita"    person4.age=27    fmt.Printf("p4=%v\n",person4)    fmt.Printf("p4=%#v\n",person4)}結(jié)果:*main.Personp4=&main.Person{name:"", city:"", age:0}p4=&{vita  27}p4=&main.Person{name:"vita", city:"", age:27}Process finished with exit code 0

person4.name="vita"其實(shí)在底層是(* person4).name="vita",這是Go語言幫我們實(shí)現(xiàn)的語法糖。

上述內(nèi)容就是Go語言中結(jié)構(gòu)體如何使用,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


當(dāng)前文章:Go語言中結(jié)構(gòu)體如何使用-創(chuàng)新互聯(lián)
URL鏈接:http://weahome.cn/article/ddpgji.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部