• 9.1Go之函数变量和返回值


    9.1Go之函数变量和返回值

    Go中函数变量的特点

    • 在Go语言中,函数也是一种类型,可以和其他类型一样保存在变量中

    示例代码:

    定义了一个函数变量 f,并将一个函数名为 fire() 的函数赋给函数变量 f,这样调用函数变量 f 时,实际调用的就是 fire() 函数

    package main

    import "fmt"

    func printValue() {
    fmt.Println("Hello")
    }

    func main() {
    var f func()

    f = printValue

    f()
    }

    代码分析:

    • func printValue() {
      fmt.Println("Hello")
      }
      • 定义了一个printValue()函数

    • var f func()
      • 将变量 f 声明为 func()类型,此时 f 称为“回调函数”,此时 f 的值为 nil。

    • f = printValue
      • printValue()函数作为值,赋给函数变量f,此时f 的值为 printValue() 函数。

    • 调用f()实际是调用printValue()

    Go中函数返回值

    Go中函数返回值的特点:

    • 支持多返回值,多返回值能方便地获得函数执行后的多个返回参数

    • 多返回值中的最后一个返回参数返回函数执行中可能发生的错误

    示例代码:

    conn, err := connectToNetwork()
    /*
    connectToNetwork 返回两个参数,conn 表示连接对象,err 返回错误信息
    */

    同一种类型的返回值

    返回值是同一种类型,则用括号将多个返回值类型括起来,用逗号分隔每个返回值的类型

    package main

    import "fmt"

    func comeBack() (int, int) {
    return 1,2
    }

    func main() {
    fmt.Println(comeBack())
    }

    带有变量名的返回值

    package main

    import "fmt"

    func comeBack() (a,b int) {
    return 1,2
    }

    func main() {
    fmt.Println(comeBack())
    }

    调用函数

    因为函数变量的存在所以调用函数变得尤为重要

    特点:

    • 函数在定义后,可以通过调用的方式,调用前的函数局部变量都会被保存起来不会丢失

    • 被调用的函数运行结束后,恢复到调用函数的下一行继续执行代码,之前的局部变量也能继续访问。

    • 函数内的局部变量只能在函数体中使用,函数调用结束后,这些局部变量都会被释放并且失效。

    It's a lonely road!!!
  • 相关阅读:
    Longest Palindromic Substring问题
    twosum问题
    longest substring问题
    特殊的ARP
    【转】人肉搜索技巧
    ARP攻击
    Linux kali安装及常用命令收集
    【转】ICMP协议
    SpringBoot集成Mybatis-XML方式通用Mapper
    springMVC的controller中insert()多次,记优惠券被多次领取
  • 原文地址:https://www.cnblogs.com/JunkingBoy/p/15232413.html
Copyright © 2020-2023  润新知