• go 接口一系列的方法的集合


    //接口 就是一系列的方法集合
    type Inner interface {
        run()
        speak()
    }
    type Piii struct {
        name string
        id int
    
    }
    type Diii struct {
        name string
        id int
        bol bool
    
    }
    func(p Diii) run()  {
        fmt.Println("我是普通",p.name)
    }
    func(p Diii) speak()  {
        fmt.Println("我是会员",p.name)
    }
    
    
    
    func(p Piii) run()  {
        fmt.Println("我是普通",p.name)
    }
    func(p Piii) speak()  {
        fmt.Println("我是会员",p.name)
    }
    
    
    func main() {
    
        pd := Piii{name:"腾讯"}
        dd := Diii{name:"爱奇艺"}
        //var d Inner
        //d = pd
        //d = dd
        //fmt.Println(d)}
        speak(dd)
        speak(pd)}
    //func speak(p Inner)  {
    //    a:= p.(Diii)
    //    fmt.Println(a.bol)
    //    p.speak()
    //}
    func speak(p Inner)  {
        switch a:=p.(type) {
        case Piii:
            //判断好了,你是普通鸭子,把鸭子名字拿出来
            fmt.Println("你是普通")
            fmt.Println(a.name)
        case Diii:
            //判断好了,你是唐老鸭,把唐老鸭的wife拿出来
            fmt.Println("你是会员")
    
            fmt.Println(a.bol)
        }}
    //空接口
    type E interface {
    
    }
    type Tduck struct {
        name string
        id int
        bol bool
    }
    
    func main() {
        test(1)
        test("ssss")
        test(Tduck{})
        test(10.45)
    }
    
    func test(a interface{})  {
        switch a.(type) {
        case int:
            fmt.Println("int")
        case string:
            fmt.Println("str")
        case Tduck:
            fmt.Println("Tduck")
        default:
            fmt.Println("default")
        }
    }
    //空接口   继承多个接口
    type E interface {
        qqq()
    }
    type F interface {
        www() int
    }
    
    
    type Inner struct {
        name string
        age int
    }
    
    func (a Inner) qqq()  {
        fmt.Println(a.name,a.age)
    }
    func (a Inner) www() int {
        return a.age
    }
    func main() {
        e:=Inner{name:"yangxin",age:10}
        var s E = e
        s.qqq()
        e.qqq()
        res := e.www()
        fmt.Println(res)
    }
  • 相关阅读:
    解决在cmd命令下不能输入中文方法
    报错注入
    html表单中的name属性和value属性
    xss漏洞
    DVWA-xss反射型(跨站脚本漏洞)
    DVWA-brute force
    owsap top 10 2017(十大web安全应用程序安全)
    sqli_labs less-5
    盲注
    c++ 类
  • 原文地址:https://www.cnblogs.com/yangxinpython/p/12031765.html
Copyright © 2020-2023  润新知