内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

go語(yǔ)言中struct結(jié)構(gòu)體的使用-創(chuàng)新互聯(lián)

一、struct的特點(diǎn)

  • 1、用來(lái)自定義復(fù)雜數(shù)據(jù)結(jié)構(gòu)
  • 2、struct里面可以包含多個(gè)字段(屬性)
  • 3、struct類型可以定義方法,注意和函數(shù)的區(qū)分
  • 4、struct類型是值類型
  • 5、struct類型可以嵌套
  • 6、GO語(yǔ)言沒(méi)有class類型,只有struct類型

二、struct的定義

1、struct聲明:

目前創(chuàng)新互聯(lián)公司已為1000多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站托管維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、濮陽(yáng)縣網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
type 標(biāo)識(shí)符 struct {
    Name string
    Age int
    Score int
}

2、struct 中字段訪問(wèn):和其他語(yǔ)言一樣,使用點(diǎn)
例子

type Student struct {
    Name string
    Age int
    Score int
}

func main(){
    var stu Student
    stu.Name = "lilei"
    stu.Age = 22
    stu.Score = 20
    fmt.Printf("name=%s age=%d score=%d",stu.Name,stu.Age,stu.Score)
}

3、struct定義的三種形式:
a:   var stu Student
b:  var stu Student = new(Student)
c:  var stu
Student = &Student{}
(1)其中b和c返回的都是指向結(jié)構(gòu)體的指針,訪問(wèn)形式如下
stu.Name、stu.Age和stu.Score 或者(stu).Name、(stu).Age、(*stu).Scroe

三、struct的初始化

1、struct的內(nèi)存布局:struct中的所有字段在內(nèi)存是連續(xù)的,布局如下:

type Rect1 struct { Min, Max point}
type Rect2 struct { Min, Max *point}

2、鏈表定義
type School struct {
    Name School
    Next *School
}

每個(gè)節(jié)點(diǎn)包含下一個(gè)節(jié)點(diǎn)的地址,這樣把所有的節(jié)點(diǎn)串起來(lái),通常把鏈表的第一個(gè)節(jié)點(diǎn)叫做鏈表頭

3、雙鏈表定義
type School struct {
    Name string
    Next *School
    Prev *School
}

如果有兩個(gè)指針?lè)謩e指向前一個(gè)節(jié)點(diǎn)和后一個(gè)節(jié)點(diǎn)叫做雙鏈表。

4、二叉樹(shù)定義

type School struct {
Name string
Left School
Right
School
}
如果每個(gè)節(jié)點(diǎn)有兩個(gè)指針?lè)謩e用來(lái)指向左子樹(shù)和右子樹(shù),我們把這樣的結(jié)構(gòu)叫做二叉樹(shù)

四、特殊自處

1、結(jié)構(gòu)體是用戶單獨(dú)定義的類型,不能和其他類型進(jìn)行強(qiáng)制轉(zhuǎn)換
2、golang中的struct沒(méi)有構(gòu)造函數(shù),一般可以使用工廠模式來(lái)解決這個(gè)問(wèn)題
package model
type student struct {
  Name string
  Age int
}
 func NewStudent(name string,age int) *student {
  return &student{
    Name:name,
    Age:age,
  }
}
package main
S := new(student)
S := model.NewStudent("tom",20)
3、我們可以為struct中的每個(gè)字段,寫(xiě)上一個(gè)tag。這個(gè)tag可以通過(guò)反射的機(jī)制獲取到,最常用的場(chǎng)景就是json序列化和反序列化。
type student struct {
  Name string `json="name"`
  Age string `json="age"`
}
4、結(jié)構(gòu)體中字段可以沒(méi)有名字,即匿名字段
type Car struct {
  Name string
  Age int
}

type Train struct {
  Car
  Start time.Time
  int
}
5、匿名字段的沖突處理
type Car struct {
  Name string
  Age int
}
type Train struct {
  Car
  Start time.Time
  Age int
}

type A struct {
  a int
}
type B struct {
  a int
  b int
}
type C struct {
  A
  B
}

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

分享文章:go語(yǔ)言中struct結(jié)構(gòu)體的使用-創(chuàng)新互聯(lián)
轉(zhuǎn)載來(lái)源:http://www.rwnh.cn/article30/csdjpo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、品牌網(wǎng)站設(shè)計(jì)、小程序開(kāi)發(fā)、品牌網(wǎng)站制作、微信公眾號(hào)、外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司
平定县| 房产| 志丹县| 浮梁县| 利川市| 南汇区| 铜梁县| 福贡县| 惠州市| 盖州市| 永宁县| 乌拉特后旗| 孝昌县| 阿荣旗| 弥勒县| 宣化县| 曲阳县| 清徐县| 威信县| 太仓市| 房山区| 获嘉县| 刚察县| 北碚区| 甘谷县| 河间市| 广德县| 克什克腾旗| 宁蒗| 前郭尔| 德昌县| 镇安县| 屏东市| 盈江县| 布尔津县| 顺平县| 墨玉县| 淮安市| 崇文区| 长垣县| 元朗区|