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

      

  • 相关阅读:
    移动端picker插件
    腾讯云主机如何使用root账号登录,不能使用root登录怎么办
    windows安装composer总结
    ubuntu安装git
    workman
    权限设计
    app接口
    git提交流程简述
    mysql分区partition详解
    html元素拖拽
  • 原文地址:https://www.cnblogs.com/eiguleo/p/15749593.html
Copyright © 2011-2022 走看看