婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Golang學(xué)習(xí)筆記(六):struct

Golang學(xué)習(xí)筆記(六):struct

熱門標(biāo)簽:?兓? 騰訊外呼系統(tǒng)價格 成都呼叫中心外呼系統(tǒng)平臺 電梯外呼訪客系統(tǒng) 谷歌便利店地圖標(biāo)注 浙江人工智能外呼管理系統(tǒng) 最短的地圖標(biāo)注 電銷機(jī)器人可以補(bǔ)救房產(chǎn)中介嗎 百度地圖標(biāo)注搜索關(guān)鍵詞

struct

struct,一組字段的集合,類似其他語言的class

放棄了大量包括繼承在內(nèi)的面向?qū)ο筇匦裕槐A袅私M合(composition)這個最基礎(chǔ)的特性

1.聲明及初始化

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

type person struct {
    name string
    age  int
}

//初始化

func main() {
    var P person

    P.name = "tom"
    P.age = 25
    fmt.Println(P.name)

    P1 := person{"Tom1", 25}
    fmt.Println(P1.name)

    P2 := person{age: 24, name: "Tom"}
    fmt.Println(P2.name)
}

2.struct的匿名字段(繼承)

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

type Human struct {
    name string
    age int
    weight int
}

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

mark := Student(Human{"mark", 25, 120}, "Computer Science")

mark.name
mark.age


能夠?qū)崿F(xiàn)字段繼承,當(dāng)字段名重復(fù)的時候,優(yōu)先取外層的,可以通過指定struct名還決定取哪個
復(fù)制代碼 代碼如下:

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

struct不僅可以使用struct作為匿名字段,自定義類型、內(nèi)置類型都可以作為匿名字段,而且可以在相應(yīng)字段上做函數(shù)操作

3.method

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

type Rect struct {
    x, y float64
    width, height float64
}

//method


Reciver 默認(rèn)以值傳遞,而非引用傳遞,還可以是指針
指針作為Receiver會對實(shí)例對象的內(nèi)容發(fā)生操作,而普通類型作為Receiver僅僅是以副本作為操作對象,而不對原實(shí)例對象發(fā)生操作
復(fù)制代碼 代碼如下:

func (r ReciverType) funcName(params) (results) {

}


如果一個method的receiver是*T,調(diào)用時,可以傳遞一個T類型的實(shí)例變量V,而不必用V去調(diào)用這個method
復(fù)制代碼 代碼如下:

func (r *Rect) Area() float64 {
    return r.width * r.height
}

func (b *Box) SetColor(c Color) {
    b.color = c
}

4.method繼承和重寫

采用組合的方式實(shí)現(xiàn)繼承

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

type Human struct {
    name string
}

type Student struct {
    Human
    School string
}

func (h *Human) SayHi() {
    fmt.Println(h.name)
}

//則Student和Employee的實(shí)例可以調(diào)用
func main() {
    h := Human{name: "human"}
    fmt.Print(h.name)
    h.SayHi()

    s := Student{Human{"student"}}
    s.SayHi()

}


還可以進(jìn)行方法重寫
復(fù)制代碼 代碼如下:

funct (e *Student) SayHi() {
    e.Human.SayHi()
    fmt.Println(e.School)
}

您可能感興趣的文章:
  • golang實(shí)現(xiàn)unicode轉(zhuǎn)換為字符串string的方法
  • 簡單了解Go語言中函數(shù)作為值以及函數(shù)閉包的使用
  • Go語言中函數(shù)的參數(shù)傳遞與調(diào)用的基本方法
  • 舉例詳解Go語言中os庫的常用函數(shù)用法
  • Go語言的os包中常用函數(shù)初步歸納
  • Go語言常見哈希函數(shù)的使用
  • Go語言里的new函數(shù)用法分析
  • go語言版的ip2long函數(shù)實(shí)例
  • Go語言截取字符串函數(shù)用法
  • Go語言中append函數(shù)用法分析
  • GO語言延遲函數(shù)defer用法分析
  • Go語言中的流程控制結(jié)構(gòu)和函數(shù)詳解
  • golang中strconv.ParseInt函數(shù)用法示例

標(biāo)簽:盤錦 眉山 上海 宜昌 七臺河 紹興 邢臺 雅安

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Golang學(xué)習(xí)筆記(六):struct》,本文關(guān)鍵詞  Golang,學(xué)習(xí),筆記,六,struct,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Golang學(xué)習(xí)筆記(六):struct》相關(guān)的同類信息!
  • 本頁收集關(guān)于Golang學(xué)習(xí)筆記(六):struct的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 忻城县| 万源市| 礼泉县| 永年县| 布尔津县| 松阳县| 房山区| 房产| 滦平县| 攀枝花市| 景宁| 新蔡县| 醴陵市| 陕西省| 城固县| 嘉荫县| 五台县| 滁州市| 新闻| 敦化市| 泰来县| 垣曲县| 金湖县| 漳平市| 龙门县| 县级市| 吉木萨尔县| 康保县| 若尔盖县| 清镇市| 工布江达县| 通州区| 区。| 龙岩市| 张家川| 桃江县| 马关县| 南城县| 澄迈县| 团风县| 嘉鱼县|