美文网首页
Go函数(一)

Go函数(一)

作者: 草莓君_ | 来源:发表于2019-07-31 11:57 被阅读0次

    关键字func用于定义函数。

    • 无须前置声明。
    • 不支持命名嵌套定义
    • 不支持同名函数重载
    • 不支持默认参数
    • 支持不定长变参
    • 支持多返回值
    • 支持命名返回值
    • 支持匿名函数和闭包

    函数属于第一对象(指可在运行期创建,可用作函数参数或返回值,可存入变量的实体),具有相同签名(参数及返回值列表)的视作同一类型。

    func hello() {
        println("hello world")
    }
    func exec(f func())  {
        f()
    }
    func main() {
        f := hello
        exec(f)
    }
    

    从阅读和代码维护的角度来说,使用命名类型更加方便

    //定义函数类型
    type FormatFunc func(string, ...interface{}) (string,error)
    
    func format(f FormatFunc, s string, a ...interface{}) (string,error)  {
        return f(s, a...)
    }
    

    相关文章

      网友评论

          本文标题:Go函数(一)

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