zoukankan      html  css  js  c++  java
  • 组合

    ...

    初始化匿名成员为接口的结构体,初始化参数需要是指针,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()
    }
    

      

  • 相关阅读:
    uva 147 Dollars
    hdu 2069 Coin Change(完全背包)
    hdu 1708 Fibonacci String
    hdu 1568 Fibonacci
    hdu 1316 How Many Fibs?
    poj 1958 Strange Towers of Hanoi
    poj 3601Tower of Hanoi
    poj 3572 Hanoi Tower
    poj 1920 Towers of Hanoi
    筛选法——素数打表
  • 原文地址:https://www.cnblogs.com/eiguleo/p/15749593.html
Copyright © 2011-2022 走看看