golang对象

对象和组合

package main
import (
"fmt"

)

type father struct {
name string
sex int
}
type sun struct {
father
age int
}
func main() {
m:=father{name:"father",sex:11}
s:=sun{father:father{name:"son",sex:12},age:14}
fmt.Println(s)
fmt.Println("name",s.name)
fmt.Println("name",m.name)
fmt.Println("sex",s.sex)
fmt.Println("sex",m.sex)
fmt.Println("age",s.age)
}

  

接口实例:

package main
 
import "fmt"

//接口,只是一个提示,不在接口定义中实现
type Handler interface {
    Do(k, v interface{})
}    

//使用接口
func Each(m map[string]int, h Handler) {
    if m != nil && len(m) > 0 {
        for k, v := range m {
            h.Do(k, v)
        }
    }
}
type welcome string

//接口实现处
func (w welcome) Do(k, v interface{}) {
    fmt.Printf("%s,我叫%s,今年%d岁
", w,k, v)
}
 
func main(){ 
    persons := make(map[string]int)
    persons["张三"] = 20
    persons["李四"] = 23
    persons["王五"] = 26

    var w welcome = "大家好"

    Each(persons, w)
}

  

原文地址:https://www.cnblogs.com/peterinblog/p/7837418.html