1. 程式人生 > 其它 >斬獲大獎|阿里雲PolarDB-X引領雲原生分散式資料庫新時代

斬獲大獎|阿里雲PolarDB-X引領雲原生分散式資料庫新時代

...

初始化匿名成員為介面的結構體,初始化引數需要是指標,ide幫忙解決了,結構體,可以直接呼叫初始化引數實現的方法,也就是介面內的方法

package main

import "log"

type Bird interface {
	Biss()
}
type Lan struct{}

func (l *Lan) Biss() {
	log.Println("Lan Biss")
}

type Hus struct {
	Bird
}

func main() {
	var l Lan = Lan{}
	var hus Hus = Hus{&l}
	hus.Biss()

	l2 := new(Lan)
	var hus1 Hus = Hus{l2}
	hus1.Biss()

}

...

結構體A內嵌匿名結構體b和c,則A使用b和c初始化後 ,可以直接呼叫b和c實現的方法

當b c繫結同名函式時,A不能呼叫該方法,不同名的不收該限制

package main

import "log"

type Bird struct {
	Name string
	Age  int
}

type Dog struct {
	Name string
	Age  int
}

func (b *Bird) Say() {
	log.Println("bird say")
}

func (d *Dog) Eat() {
	log.Println("Dog eat")
}

type Ani struct {
	Bird
	Dog
}

func main() {

	b := Bird{"bb", 11}
	d := Dog{"dd", 11}
	a := Ani{b, d}
	a.Eat()
}