• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Go语言函数学习教程

    本文实例讲述了Go语言函数基本用法。分享给大家供大家参考,具体如下:

    这里要说一下是Go函数和一些其他语言不一样的地方

    1 函数格式不同

    复制代码 代码如下:
    func GetMsg(i int) (r string) {
        fmt.Println(i)
        r = "hi"
        return r
    }

    func说明这个是个函数

    GetMsg是函数名

    (i int) 函数接收一个int参数

    (r string) 函数返回一个string类型返回值

    2 函数可以返回多个返回值

    这点和c,php都不一样,和lua是一样的

    复制代码 代码如下:
    func GetMsg(i int) (r string, err string) {
        fmt.Println(i)
        r = "hi"
        err = "no err"
        return r,err
    }

    3 defer的使用

    defer的意思是"在函数退出时调用",特别用于对文件进行读写操作的时候,需要在open之后要调用close操作,将close操作使用defer

    复制代码 代码如下:
    func ReadFile(filePath string)(){
        file.Open(filePath)
        defer file.Close()
        if true {
            file.Read()
        } else {
            return false
        }
    }

    这样写的意思是在file.Open后不立即调用close,当return false的时候调用file.Close().这样就有效避免了C语言中的内存泄露问题。

    4 比较难理解的:panic,recover和defer

    defer的作用前面说得很清楚了。

    Panic和Recover我们就将他们看成是其他语言中的throw和catch

    下面这个例子:

    复制代码 代码如下:
    package main
    import "fmt"
    func main() {
        f()
        fmt.Println("Returned normally from f.")
    }
    func f() {
        defer func() {
            if r := recover(); r != nil {
                fmt.Println("Recovered in f", r)
            }
        }()
        fmt.Println("Calling g.")
        g(0)
        fmt.Println("Returned normally from g.")
    }
    func g(i int) {
        if i > 3 {
            fmt.Println("Panicking!")
            panic(fmt.Sprintf("%v", i))
        }
        defer fmt.Println("Defer in g", i)
        fmt.Println("Printing in g", i)
        g(i + 1)
    }

    返回了:

    复制代码 代码如下:
    Calling g.
    Printing in g 0
    Printing in g 1
    Printing in g 2
    Printing in g 3
    Panicking!
    Defer in g 3
    Defer in g 2
    Defer in g 1
    Defer in g 0
    Recovered in f 4
    Returned normally from f.

    Panic抛出了信息,并且跳出函数。Recover接受到了信息,并且继续处理。

    这个例子理解了基本就掌握了Recover和Panic

    希望本文所述对大家Go语言程序设计有所帮助。

    您可能感兴趣的文章:
    • Go语言中的Slice学习总结
    • GO 语言学习指南
    • Go语言学习笔记之反射用法详解
    • Go语言基础学习教程
    • Go语言学习教程之声明语法(译)
    • golang新手不注意可能会出现的一些小问题
    上一篇:Go语言eclipse环境搭建图文教程
    下一篇:Go语言基础学习教程
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Go语言函数学习教程 语言,函数,学习教程,语言,