学习《GO语言学习笔记》的学习笔记之1.2 函数使用(概述)

版权声明:诸葛老刘所有 https://blog.csdn.net/weixin_39791387/article/details/86496261

本文适合对GO的基本语法有所了解的人阅读

  • 函数的使用
    • 定义多个返回值,甚至对其命名
package main

import (
    "fmt"
    "errors"
)

func div(a, b int) (int, error) {
    if b == 0 {
        return 0, errors.New("division by zero")
    }
    return a / b, nil
}


func main() {
    a, b := 10, 0      //定义多个变量
    c, err := div(a, b)     // 接收多个变量

    fmt.Println(c, err)
}
  • 函数是第一类型, 可作为参数或返回值

类似于python的装饰器, 现在了解还不能深入, 不知道能不能使用语法糖, 回头更新

package main

import (
    "fmt"
)

func test(x int) func() {       // 返回函数类型
    return func() {             // 匿名函数            
        fmt.Println(x)          // 闭包  
    }
}


func main() {
    x := 100

    f := test(x)
    f()
}
  • 用defer定义延迟调用,无论函数是否出错, 它都确保结束前被调用.
package main

import (
    "fmt"
)

func test(x, y int){
    defer fmt.Println("dispose...")     // 常用来想法释放资源, 解除锁定或执行一些清理操作
                                        // 可定义多个defer操作, 按FILO()顺序执行

    fmt.Println(x / y)
}

func main() {
    x, y := 100 ,0

    test(x, y)  
}

后进先出(Last In First Out,简称LIFO)
先进后出(First In Last Out,简称FILO)

猜你喜欢

转载自blog.csdn.net/weixin_39791387/article/details/86496261
今日推荐