美文网首页
Go学习日志:func、interface、test

Go学习日志:func、interface、test

作者: 东方泯 | 来源:发表于2019-01-11 17:17 被阅读0次

    Map里装填func

    package main
    
    import "fmt"
    
    func f(p string) {
        fmt.Println("function f parameter:", p)
    }
    
    func g(p string, q int) {
        fmt.Println("function g parameters:", p, q)
    }
    
    func main() {
        m := map[string]interface{}{
            "f": f,
            "g": g,
        }
        for k, v := range m {
            switch k {
            case "f":
                v.(func(string))("astring")
            case "g":
                v.(func(string, int))("astring", 42)
            }
        }
    }
    

    Test框架

    go test -v converts_test.go converts.go -run TestTrimBuffToString

    结果:
    === RUN TestTrimBuffToString
    --- PASS: TestTrimBuffToString (0.00s)
    converts_test.go:86: json: ["hello","world"]
    PASS
    ok command-line-arguments 0.006s

    Interface

    原文:https://blog.csdn.net/ghost_leader/article/details/77126918

    1. 接口是一个或多个方法签名的集合

    2. 只要某个类型拥有该接口的所有方法签名,就算实现了该接口,无需显示声明实现了哪个接口,这称之为 Structural Typing

    3. 接口只有方法声明,没有实现,没有数据结构字段

    1. 接口可以匿名嵌入其他接口,或者嵌入到接口中

    5. 将对象复制给接口,会发生拷贝,而接口内部存储的是指向这个复制品的指针,即无法修改复制品的状态,也无法获取指针

    1. 接口调用不会做receiver的自动转换

    2. 接口也可以实现类似OOP中的多态

    8. 空接口可以作为任何类型数据的容器

    相关文章

      网友评论

          本文标题:Go学习日志:func、interface、test

          本文链接:https://www.haomeiwen.com/subject/xwoxdqtx.html