Golang中的「繼承」,結構體中匿名成員的使用

2021-10-04 13:23:37 字數 609 閱讀 3425

最近在看**的時候,看到有結構體中使用匿名成員,在網上查閱一些資料後發現這類似其他語言中的繼承,通過乙個例子簡單總結一下。

結構體不多做介紹,這裡直接看匿名成員使用的**示例**:

type people struct 

type worker struct

我們建立了兩個結構體people和worker,其中worker中嵌入了people,那麼worker可以初始化的方式可以如下:

var worker_1 = worker, "0001", "manager",

}

需要注意的是,當使用匿名成員時,結構體字面值並沒有簡短表示匿名成員的語法, 所以下面這種初始化會報錯

var person = people

var worker_1 = worker

使用匿名成員時,可以直接呼叫匿名成員的子成員,而不需要通過匿名成員

fmt.println(worker_1.name)  //"coco"
最後總結:

這種用發類似於繼承,包含另乙個匿名結構體就相當於繼承了該結構體的字段和方法。

golang中結構體轉成xml格式

本文主要介紹結構體與xml 格式的字串進行相互轉換 go自帶 xml包,所以進行格式轉換非常的方便。一 結構體轉成xml格式 1 轉成不需要排版的xml 格式字串,可直接使用 marshal 方法 func marshal v inte ce byte,error 2 轉成可以排版的 xml格式 可...

golang反射還原結構體中的字段

假設有這樣乙個結構體 type s struct a s 3.14 用反射可以輕鬆拿到每個欄位的值 reflect.valueof a fieldbyname a reflect.valueof a fieldbyname b reflect.valueof a fieldbyname c 但這樣返...

golang 結構體的使用

package main import fmt unsafe type person struct type student struct func test man person func main fmt.println man man 2.部分初始化 man2 person fmt.print...