成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > Go語言struct類型詳解

Go語言struct類型詳解

熱門標(biāo)簽:海外照相館地圖標(biāo)注入駐 外呼系統(tǒng)多少錢一年 滁州自建外呼系統(tǒng) 外呼系統(tǒng)如何接收服務(wù)密碼 客服級電銷機(jī)器人 旅游廁所如何電子地圖標(biāo)注 智能營銷軟件 工商信用卡外呼系統(tǒng)教程 經(jīng)常接到推銷電話機(jī)器人的電話

struct

Go語言中,也和C或者其他語言一樣,我們可以聲明新的類型,作為其它類型的屬性或字段的容器。例如,我們可以創(chuàng)建一個(gè)自定義類型person代表一個(gè)人的實(shí)體。這個(gè)實(shí)體擁有屬性:姓名和年齡。這樣的類型我們稱之struct。如下代碼所示:

復(fù)制代碼 代碼如下:

type person struct {
    name string
    age int
}

看到了嗎?聲明一個(gè)struct如此簡單,上面的類型包含有兩個(gè)字段。

1.一個(gè)string類型的字段name,用來保存用戶名稱這個(gè)屬性
2.一個(gè)int類型的字段age,用來保存用戶年齡這個(gè)屬性

如何使用struct呢?請看下面的代碼:

復(fù)制代碼 代碼如下:

type person struct {
    name string
    age int
}

var P person  // P現(xiàn)在就是person類型的變量了

P.name = "Astaxie"  // 賦值"Astaxie"給P的name屬性.
P.age = 25  // 賦值"25"給變量P的age屬性
fmt.Printf("The person's name is %s", P.name)  // 訪問P的name屬性.

除了上面這種P的聲明使用之外,還有另外幾種聲明使用方式:

1.按照順序提供初始化值

復(fù)制代碼 代碼如下:

P := person{"Tom", 25}

2.通過field:value的方式初始化,這樣可以任意順序
復(fù)制代碼 代碼如下:

P := person{age:24, name:"Tom"}

3.當(dāng)然也可以通過new函數(shù)分配一個(gè)指針,此處P的類型為*person
復(fù)制代碼 代碼如下:

P := new(person)

下面我們看一個(gè)完整的使用struct的例子

復(fù)制代碼 代碼如下:

package main
import "fmt"

// 聲明一個(gè)新的類型
type person struct {
    name string
    age int
}

// 比較兩個(gè)人的年齡,返回年齡大的那個(gè)人,并且返回年齡差
// struct也是傳值的
func Older(p1, p2 person) (person, int) {
    if p1.age>p2.age {  // 比較p1和p2這兩個(gè)人的年齡
        return p1, p1.age-p2.age
    }
    return p2, p2.age-p1.age
}

func main() {
    var tom person

    // 賦值初始化
    tom.name, tom.age = "Tom", 18

    // 兩個(gè)字段都寫清楚的初始化
    bob := person{age:25, name:"Bob"}

    // 按照struct定義順序初始化值
    paul := person{"Paul", 43}

    tb_Older, tb_diff := Older(tom, bob)
    tp_Older, tp_diff := Older(tom, paul)
    bp_Older, bp_diff := Older(bob, paul)

    fmt.Printf("Of %s and %s, %s is older by %d years\n",
        tom.name, bob.name, tb_Older.name, tb_diff)

    fmt.Printf("Of %s and %s, %s is older by %d years\n",
        tom.name, paul.name, tp_Older.name, tp_diff)

    fmt.Printf("Of %s and %s, %s is older by %d years\n",
        bob.name, paul.name, bp_Older.name, bp_diff)
}

struct的匿名字段

我們上面介紹了如何定義一個(gè)struct,定義的時(shí)候是字段名與其類型一一對應(yīng),實(shí)際上Go支持只提供類型,而不寫字段名的方式,也就是匿名字段,也稱為嵌入字段。

當(dāng)匿名字段是一個(gè)struct的時(shí)候,那么這個(gè)struct所擁有的全部字段都被隱式地引入了當(dāng)前定義的這個(gè)struct。

讓我們來看一個(gè)例子,讓上面說的這些更具體化

復(fù)制代碼 代碼如下:

package main
import "fmt"

type Human struct {
    name string
    age int
    weight int
}

type Student struct {
    Human  // 匿名字段,那么默認(rèn)Student就包含了Human的所有字段
    speciality string
}

func main() {
    // 我們初始化一個(gè)學(xué)生
    mark := Student{Human{"Mark", 25, 120}, "Computer Science"}

    // 我們訪問相應(yīng)的字段
    fmt.Println("His name is ", mark.name)
    fmt.Println("His age is ", mark.age)
    fmt.Println("His weight is ", mark.weight)
    fmt.Println("His speciality is ", mark.speciality)
    // 修改對應(yīng)的備注信息
    mark.speciality = "AI"
    fmt.Println("Mark changed his speciality")
    fmt.Println("His speciality is ", mark.speciality)
    // 修改他的年齡信息
    fmt.Println("Mark become old")
    mark.age = 46
    fmt.Println("His age is", mark.age)
    // 修改他的體重信息
    fmt.Println("Mark is not an athlet anymore")
    mark.weight += 60
    fmt.Println("His weight is", mark.weight)
}

圖例如下:

圖2.7 Student和Human的方法繼承

我們看到Student訪問屬性age和name的時(shí)候,就像訪問自己所有用的字段一樣,對,匿名字段就是這樣,能夠?qū)崿F(xiàn)字段的繼承。是不是很酷???還有比這個(gè)更酷的呢,那就是student還能訪問Human這個(gè)字段作為字段名。請看下面的代碼,是不是更酷了。

復(fù)制代碼 代碼如下:

mark.Human = Human{"Marcus", 55, 220}
mark.Human.age -= 1

通過匿名訪問和修改字段相當(dāng)?shù)挠杏?,但是不僅僅是struct字段哦,所有的內(nèi)置類型和自定義類型都是可以作為匿名字段的。請看下面的例子。

復(fù)制代碼 代碼如下:

package main
import "fmt"

type Skills []string

type Human struct {
    name string
    age int
    weight int
}

type Student struct {
    Human  // 匿名字段,struct
    Skills // 匿名字段,自定義的類型string slice
    int    // 內(nèi)置類型作為匿名字段
    speciality string
}

func main() {
    // 初始化學(xué)生Jane
    jane := Student{Human:Human{"Jane", 35, 100}, speciality:"Biology"}
    // 現(xiàn)在我們來訪問相應(yīng)的字段
    fmt.Println("Her name is ", jane.name)
    fmt.Println("Her age is ", jane.age)
    fmt.Println("Her weight is ", jane.weight)
    fmt.Println("Her speciality is ", jane.speciality)
    // 我們來修改他的skill技能字段
    jane.Skills = []string{"anatomy"}
    fmt.Println("Her skills are ", jane.Skills)
    fmt.Println("She acquired two new ones ")
    jane.Skills = append(jane.Skills, "physics", "golang")
    fmt.Println("Her skills now are ", jane.Skills)
    // 修改匿名內(nèi)置類型字段
    jane.int = 3
    fmt.Println("Her preferred number is", jane.int)
}

從上面例子我們看出來struct不僅僅能夠?qū)truct作為匿名字段、自定義類型、內(nèi)置類型都可以作為匿名字段,而且可以在相應(yīng)的字段上面進(jìn)行函數(shù)操作(如例子中的append)。

這里有一個(gè)問題:如果human里面有一個(gè)字段叫做phone,而student也有一個(gè)字段叫做phone,那么該怎么辦呢?

Go里面很簡單的解決了這個(gè)問題,最外層的優(yōu)先訪問,也就是當(dāng)你通過student.phone訪問的時(shí)候,是訪問student里面的字段,而不是human里面的字段。

這樣就允許我們?nèi)ブ剌d通過匿名字段繼承的一些字段,當(dāng)然如果我們想訪問重載后對應(yīng)匿名類型里面的字段,可以通過匿名字段名來訪問。請看下面的例子。

復(fù)制代碼 代碼如下:

package main
import "fmt"

type Human struct {
    name string
    age int
    phone string  // Human類型擁有的字段
}

type Employee struct {
    Human  // 匿名字段Human
    speciality string
    phone string  // 雇員的phone字段
}

func main() {
    Bob := Employee{Human{"Bob", 34, "777-444-XXXX"}, "Designer", "333-222"}
    fmt.Println("Bob's work phone is:", Bob.phone)
    // 如果我們要訪問Human的phone字段
    fmt.Println("Bob's personal phone is:", Bob.Human.phone)
}

您可能感興趣的文章:
  • Go語言中反射的正確使用
  • 談?wù)凣o語言的反射三定律
  • go語言通過反射獲取和設(shè)置結(jié)構(gòu)體字段值的方法
  • Go語言中使用反射的方法
  • Go語言的GOPATH與工作目錄詳解
  • Go語言創(chuàng)建、初始化數(shù)組的常見方式匯總
  • Go語言常用字符串處理方法實(shí)例匯總
  • GO語言常用的文件讀取方式
  • 淺談Go語言中字符串和數(shù)組
  • Go語言學(xué)習(xí)筆記之反射用法詳解

標(biāo)簽:深圳 九江 運(yùn)城 楚雄 本溪 晉城 喀什 湘潭

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Go語言struct類型詳解》,本文關(guān)鍵詞  語言,struct,類型,詳解,語言,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Go語言struct類型詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于Go語言struct類型詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    欧美日韩一区二区三区在线观看免| 国产乱码精品一区二区三区日韩精品| 久久精品久久久久久久| 国产中文字幕网| 亚洲成人久久网| 在线看视频不卡| 最近高清中文在线字幕在线观看1| av黄色在线播放| 亚洲人成亚洲人成在线观看| 亚洲色欲久久久综合网东京热| 日韩成人av网站| 日本一区二区成人在线| 精品一区二三区| 人妻丰满熟妇av无码区hd| www.97.| 97久久精品人人澡人人爽缅北| 九九九久久国产免费| 国产成人在线小视频| 777午夜精品视频在线播放| 91免费在线视频网站| 2021最新国产精品一区| 三级在线看中文字幕完整版| 午夜免费视频在线国产| 欧美日韩亚洲国产成人| 精品免费国产二区三区| 亚洲一区三区视频在线观看| avav免费在线观看| av毛片在线免费观看| 91传媒视频在线播放| 欧美日韩中文字幕| 欧美性猛交xxxx乱大交极品| 亚洲国产va精品久久久不卡综合| 美国十次了思思久久精品导航| 久久中文字幕一区二区三区| 成人在线免费看| 日本激情在线观看| 日韩精品电影在线观看| 日本久久久久久久久久| 中文字幕免费高清在线观看| 欧美a∨亚洲欧美亚洲| 中文字幕18页| 毛片视频免费播放| 99这里有精品视频| 一本色道久久加勒比88综合| 久操成人在线视频| 欧美最新精品| 性色av香蕉一区二区| 884aa四虎免费影库4h| 青娱乐国产在线| 日本a级不卡| 青青草av网站| 成人一级免费视频| 伊人国产在线观看| 欧美α欧美αv大片| 91最新在线免费观看| 成人精品一二区| 高清中文字幕在线| 中文字幕超碰在线| 九九九免费视频| 国产又黄又大又粗视频| 国产欧美一区二区三区鸳鸯浴| 不卡的电视剧免费网站有什么| 日本免费视频在线观看| 亚洲一区二区| 在线不卡一区二区| 男女免费视频网站| 三级在线电影| 在线黄色国产视频| 亚洲男人第一网站| 日韩欧美美女一区二区三区| 亚洲精品一区二区妖精| www.色视频| 免费在线黄网站| 波多野结衣中文字幕一区二区三区| 少女频道在线观看免费播放电视剧| 影音先锋另类| 国产一级一片免费播放| 亚洲精品国产第一综合99久久| 亚洲私人黄色宅男| 成人精品国产| 久久影院午夜论| 亚洲成色精品| 超碰在线caoporn| 国产精品国产三级国产专区51| 美女久久网站| 精品国产不卡| 欧美成人精品欧美一级| 91久久大香伊蕉在人线| 国产麻豆午夜三级精品| 狠狠综合久久av一区二区小说| 日韩欧美精品一区二区综合视频| 亚洲aⅴ男人的天堂在线观看| 欧美精品久久久久久久小说| 成年网站免费视频黄| 制服诱惑一区| 亚洲国产剧情在线观看| 亚洲欧洲一区二区在线播放| 国产亚洲女人久久久久毛片| 国产毛片av在线| 四季av一区二区| 亚洲免费黄色网址| 99国产精品久久久久久久成人| 久久se精品一区二区| 日韩精品二区| 在线观看免费中文字幕| 韩国黄色一级大片| 99国产揄拍国产精品| av在线亚洲天堂| 好吊色视频988gao在线观看| 亚洲作爱视频| 成人一区二区三| 毛茸茸free性熟hd| 无套白嫩进入乌克兰美女| 久久免费看毛片| 中文字幕不卡三区| 青青操视频在线观看| 一本之道在线视频| а√中文在线天堂精品| 国产精品久久久久久户外露出| 免费黄色欧美视频| 欧美剧情电影在线观看完整版免费励志电影| 欧美成人精品h版在线观看| 黄色三级视频在线播放| 91超薄丝袜肉丝一区二区| 亚洲人成网站精品片在线观看| 欧洲第一无人区观看| 国产黄色特级片| 国产影视一区二区| 影音先锋在线中文字幕| 色噜噜狠狠色综合网| 日韩免费一二三区| 国产福利91精品一区二区| 国产综合无码一区二区色蜜蜜| 精品sm在线观看| 国产精品丝袜视频| 国产欧美激情视频| 精品无码免费视频| 午夜一级久久| 狠狠躁狠狠躁视频专区| 欧美激情久久久久久久| 丰满少妇一区二区三区专区| 中文有码在线播放| 久久精品夜夜夜夜久久| 久久99国产精品久久久久久久久| 波多野结衣一区二区三区| 久久久久香蕉视频| 天天操夜夜拍| 欧美激情手机在线视频| 亚洲精品中文在线观看| 国产精品高潮呻吟久久久久| 大胆亚洲人体视频| se01亚洲视频| 国产一级片av| 亚洲美女爱爱视频| 丰满人妻一区二区三区四区| 精品人妻无码一区二区三区换脸| 欧美日韩加勒比精品一区| 蜜桃视频久久一区免费观看入口| 色综合天天综合给合国产| xxx成人少妇69| 美女的诞生在线观看高清免费完整版中文| 国产精品久久乐| 欧美精品黑人性xxxx| 操你啦视频分享| 国产麻豆成人传媒免费观看| 日韩深夜视频| 久久久久亚洲av无码专区喷水| 日韩精品视频在线播放| 欧美自拍视频在线| 欧美性猛交xxxx乱大交蜜桃| 国产欧美日韩成人| 亚洲av无码国产精品久久| 国内精品视频一区二区三区八戒| 一区三区自拍| 天堂a√在线| 在线观看免费一区| 精国产品一区二区三区a片| 国产99久久久国产精品成人免费| 青青一区二区三区| 99久久久国产| 中文字幕成人乱码在线电影| 99久久99久久精品国产片| 欧美精品与人动性物交免费看| 欧美日韩在线免费播放| 日本aⅴ精品一区二区三区| 欧美日韩一区二区欧美激情| 欧美色精品天天在线观看视频| 女女色综合影院| 国产精品一区久久久| 免费成年人视频在线观看| 亚洲美女视频在线| 色噜噜狠狠色综合网| 黄色录像1级片| 毛片av中文字幕一区二区| 美日韩精品视频免费看| 中文字幕日韩三级| 国产综合av| 免费看国产一级片| 日韩限制级电影在线观看| 四虎成人免费视频| 亚洲欧美日韩国产综合| 国产永久免费视频| 欧美亚洲专区| 51ⅴ精品国产91久久久久久| 成人91在线| 欧美1级日本1级| 日韩欧美一区二区三区久久婷婷| 蜜月aⅴ免费一区二区三区| 久草免费在线视频观看| 国产精品视频精品视频| 一区二区精品在线观看| 潘金莲一级淫片aaaaaa播放| 丝袜在线视频| 中文字幕一精品亚洲无线一区| 黄色录像a级片| 免费超爽大片黄| 欧美专区日韩视频| 久久精品视频免费播放| 欧美性生交xxxxx| 香蕉乱码成人久久天堂爱免费| 亚洲а∨天堂久久精品喷水| 国产精品一区二区美女视频免费看| 91啦中文成人| h版电影在线播放视频网站| 4444亚洲人成无码网在线观看| 日韩免费在线视频| 成人美女在线视频| 手机av免费在线观看| 国产综合在线观看| 国产精品一区二区三区四区五区| av官网在线观看| 免费观看日批视频| 538任你躁在线精品免费| 91久久精品网| japanese色国产在线看视频| 中韩乱幕日产无线码一区| 欧美日韩亚洲系列| 麻豆精品一二三| 老熟妇高潮一区二区高清视频| 日本精品久久久久中文| 成年美女黄网站色大片不卡| 成人国产精品免费观看| 久久精品国产亚洲AV成人婷婷| 欧美极品免费| 日韩成人免费av| 精品日韩一区二区三区| 久久99精品国产麻豆婷婷洗澡| 成人美女在线视频| 国产麻豆入在线观看| 伊人影院综合在线| 日韩在线视频精品| 99在线欧洲视频| 一区二区欧美精品| 校花撩起jk露出白色内裤国产精品| 亚洲国产aⅴ天堂久久| 777精品久无码人妻蜜桃| 天堂av一区二区三区在线播放| 你懂的视频在线免费| 成人国产精品免费视频| 国产亚洲视频在线| 黄页视频在线播放| 五月天福利视频| 国产大陆a不卡| 欧美最顶级丰满的aⅴ艳星| 日韩电影在线播放| 三级网站免费观看| 国产精品欧美综合在线| 久久久久久99精品| 91精品在线观看入口| 一本色道久久| 2019中文字幕在线观看| 欧美日本韩国一区二区| 久久国产88| 亚洲风情亚aⅴ在线发布| 欧美暴力喷水在线| 亚洲成年人电影在线观看| 成av人免费青青久| 免费高清成人在线| 黄在线观看免费网站ktv| 色欲一区二区三区精品a片| 亚洲一区二区三区蜜桃| 91久久国产综合久久91精品网站| 色先锋最新资源| 久久婷婷亚洲| 亚洲综合精品在线| 奇米影视狠狠狠| 欧美国产视频一区| 成人一区二区三区视频| 久久免费美女视频| 国产乡下妇女三片| 合欧美一区二区三区| 美美哒免费高清在线观看视频一区二区| 亚洲区一区二区三| 99re6这里只有精品视频在线观看| 狠狠综合久久av一区二区小说| 2020国产在线| 又黄又爽的网站| 天海翼女教师无删减版电影| 欧美日韩电影在线播放| 国产精品久久久久久久久久久久久久久久| 久久99精品国产99久久6尤物| 欧美图片激情小说| 男人的午夜天堂| 国产福利精品导航| 日韩av在线播放资源| 日韩欧美一区中文| 三级网站在线看| 人妻久久久一区二区三区| 国产精品爽爽久久久久久| 熟妇人妻av无码一区二区三区| 中文欧美字幕免费| 国产精品久久久一区二区| 激情综合自拍| 日韩av手机在线播放| 日本精品久久久久| 精人妻一区二区三区| 97se亚洲综合| 欧美xxxx14xxxxx性爽| 欧洲亚洲精品视频| 91综合久久| 免费一二一二在线视频| 国产一区二区自拍视频| 欧美国产高潮xxxx1819| 久久精品国产免费观看99| 国产欧美日韩久久| 久久精品视频免费| 日本成人黄色片| 超碰在线观看99|