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()
    }
    

      

  • 相关阅读:
    json批量设置DIV属性
    随机产生div背景颜色变化
    发送验证码倒计时
    购物网站倒计时
    ARC066B
    [Poi2011]Conspiracy
    CF1103E Radix Sum
    NOI2018 冒泡排序
    CometOJ 5E
    NOI2020 命运
  • 原文地址:https://www.cnblogs.com/eiguleo/p/15749593.html
Copyright © 2011-2022 走看看