最近在看**的時候,看到有結構體中使用匿名成員,在網上查閱一些資料後發現這類似其他語言中的繼承,通過乙個例子簡單總結一下。
結構體不多做介紹,這裡直接看匿名成員使用的**示例**:
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...