zoukankan      html  css  js  c++  java
  • Go语言基础07 _interface _1

    Go语言基础07 _interface _1

    与其他主要编程语⾔的差异

    1. 接⼝为⾮⼊侵性,实现不依赖于借⼝定义
    2. 所以接⼝的定义可以包含在接⼝使⽤者包内
    package interface_test
    
    import "testing"
    
    // 接⼝定义
    type Programmer interface {
       WriteHelloWorld() string
    }
    
    // Duck Type 式接⼝实现 
    type GoProgrammer struct{
    }
    
    func (g *GoProgrammer) WriteHelloWorld() string{ // 只要这个方法的签名是一样的 那就是实现了这个接口
       // duckType 看起来像 那就是
       return "fmt.Println("Hello World")"
    }
    
    func TestClient(t *testing.T){
       var p Programmer
       p = new(GoProgrammer)
       t.Log(p.WriteHelloWorld())
       // 这样做的 好处是 即使不依赖于 接口 功能也能实现 能够在很大程度上解耦合
       q := new(GoProgrammer) // 实例化
       t.Log(q.WriteHelloWorld())
    }
    
  • 相关阅读:
    hive实战记录
    并发
    软件安装
    idea
    maven
    thingkinginjava
    JVM
    并发模块concurrent
    ffmpeg_分割一个mp4文件到多个小的mp4文件
    用 ffmpeg 压缩视频
  • 原文地址:https://www.cnblogs.com/OwlInTheOaktree/p/15263544.html
Copyright © 2011-2022 走看看