zoukankan      html  css  js  c++  java
  • Go --- InterFace

    package main


    import (
    "fmt"
    )


    //define a interface 
    type USB interface {
    Name() string
    connecter
    }
    type connecter interface {
    connect()
    }


    type PhoneConnecter struct {
    name string
    }


    func (pc PhoneConnecter) Name() string {
    return pc.name
    }
    func (pc PhoneConnecter) connect() {
    fmt.Println("Connected", pc.name)
    }


    func main() {
    pc := PhoneConnecter{"PhoneConnecter"}
    var a connecter
    a = PhoneConnecter(pc)
    a.connect()
    //DisConnect(a)
    //Jude(a)


    var y interface{}
    fmt.Print(y)


    var p *int = nil
    y = p
    fmt.Println(y == nil)


    }
    func DisConnect(usb USB) {


    if pc, ok := usb.(PhoneConnecter); ok {
    fmt.Println("This is a PhoneConnecter", pc.name)
    return
    }
    fmt.Println("Unknown device")
    }


    func Jude(usb USB) {
    switch v := usb.(type) {
    case PhoneConnecter:
    fmt.Println("Jude from PhoneConnecter", v.name)
    default:
    fmt.Println("Unknown device.")
    }
    }

  • 相关阅读:
    句子
    Https
    SSH
    uCMDB
    snapshot与release
    Ansible
    .NET core webApi 使用JWT验证签名(转)
    .NET core 使用Swagger(转)
    微服务的4个设计原则和19个解决方案(转)
    .NET Core 使用RabbitMQ(转)
  • 原文地址:https://www.cnblogs.com/james1207/p/3317960.html
Copyright © 2011-2022 走看看