好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

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

Golang學習筆記(六):struct

熱門標簽:?兓? 騰訊外呼系統價格 成都呼叫中心外呼系統平臺 電梯外呼訪客系統 谷歌便利店地圖標注 浙江人工智能外呼管理系統 最短的地圖標注 電銷機器人可以補救房產中介嗎 百度地圖標注搜索關鍵詞

struct

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

放棄了大量包括繼承在內的面向對象特性,只保留了組合(composition)這個最基礎的特性

1.聲明及初始化

復制代碼 代碼如下:

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的匿名字段(繼承)

復制代碼 代碼如下:

type Human struct {
    name string
    age int
    weight int
}

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

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

mark.name
mark.age


能夠實現字段繼承,當字段名重復的時候,優先取外層的,可以通過指定struct名還決定取哪個
復制代碼 代碼如下:

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

struct不僅可以使用struct作為匿名字段,自定義類型、內置類型都可以作為匿名字段,而且可以在相應字段上做函數操作

3.method

復制代碼 代碼如下:

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

//method


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

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

}


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

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

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

4.method繼承和重寫

采用組合的方式實現繼承

復制代碼 代碼如下:

type Human struct {
    name string
}

type Student struct {
    Human
    School string
}

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

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

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

}


還可以進行方法重寫
復制代碼 代碼如下:

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

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

標簽:盤錦 眉山 上海 宜昌 七臺河 紹興 邢臺 雅安

巨人網絡通訊聲明:本文標題《Golang學習筆記(六):struct》,本文關鍵詞  Golang,學習,筆記,六,struct,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Golang學習筆記(六):struct》相關的同類信息!
  • 本頁收集關于Golang學習筆記(六):struct的相關信息資訊供網民參考!
  • 推薦文章