zoukankan      html  css  js  c++  java
  • 2.4 GO Interface

    package itface
    
    type Sender interface {
        Send(url string) string
    }
    
    type Geter interface {
        Get(url string ) string
    }
    
    //组合接口
    type Socket interface {
        Sender
        Geter
    }

    具体的实现struct中不必指定接口的名称,但却有一个要求:一个struct如果实现了某个接口,那么就必须实现接口中的所有方法

    package itface
    
    import "fmt"
    
    type Client struct {
        Count int
        Contents string
    }
    
    func (cc Client) Send(url string) string {
        fmt.Println("send message")
        return "ok"
    }
    
    func (cc Client) Get(url string ) string  {
    
        fmt.Println(cc.Contents)
        return cc.Contents
    }
    package itface
    
    import "fmt"
    
    type Server struct {
        Count int
        Contents string
    }
    
    //值复制方式,每次都是从初始化的值开始计算,没有高并发的问题
    func (ss Server) Send(url string) string{
        //ss.Count += 1
        ss.setCount(1)
        fmt.Println(ss.Count)
        fmt.Println(ss.Contents)
        return ss.Contents
    }
    
    func (ss *Server) setCount(a int){
        ss.Count += a
    }
    package main
    
    import (
        "fmt"
        "study/itface"
    )
    
    func test(str string){
        var send itface.Sender
        send = itface.Server{1,str}
        var url string
        url = "www.baidu.com"
        send.Send(url)
        fmt.Println("第2次调用")
        send.Send(url)
    }
    
    func client(str string){
        var client itface.Geter
        client = itface.Client{1,str}
        client.Get("www.itoracle.cn")
    }
    
    func socket(str string)  {
        var sk itface.Socket
        sk = itface.Client{1,str}
        sk.Send("www.itoracle.cn")
    }
    
    
    func main() {
        test("不可能")
        client("why?")
        socket("bbb")
    }

    输出结果

    2
    不可能
    第2次调用
    2
    不可能
    why?
    send message
  • 相关阅读:
    JAVA常用运算符
    JAVA基本语义简介
    JAVA常用关键字
    记事本写JAVA程序
    JAVA开发环境搭建
    PROTEL DXP原理图编译 常见错误与处理方法
    关于光耦的认识
    十六进制转十进制函数_C编程
    Protues记录文档_1
    SR触发器和JK触发器
  • 原文地址:https://www.cnblogs.com/perfei/p/10544487.html
Copyright © 2011-2022 走看看