美文网首页
11 Go defer语句 && init()函数

11 Go defer语句 && init()函数

作者: 亨锅锅 | 来源:发表于2018-10-30 13:09 被阅读0次

1、defer语句

package main

import "fmt"

func main() {
    /*
    1.defer语句的格式
    defer 语句

    2.defer语句的作用
    延迟执行, 会在所属函数执行完毕之后再执行
    常用于资源释放, 解锁, 错误处理等等
    以前在C语言中我们说过, 通过malloc申请的存储空间, 一定更要释放free
    但是由于我们不能写完malloc之后立即free,所以经常导致我们忘记释放
    malloc -- >申请存储空间
    ... ... --> 使用存储空间
    free --> 释放存储空间

    注意点:
    如果在同一个函数中编写了多个defer语句, 那么会遵守先进后出的原则
    先注册的defer语句后执行, 后注册的defer语句先执行
     */

     //fmt.Println("申请存储空间")
     //defer fmt.Println("释放存储空间")
     //fmt.Println("使用存储空间")
     //fmt.Println("使用存储空间")
     //fmt.Println("使用存储空间")


     defer fmt.Println("第一条语句")
     defer fmt.Println("第二条语句")
     defer fmt.Println("第三条语句")
     defer fmt.Println("第四条语句")
}

结果

第四条语句
第三条语句
第二条语句
第一条语句

Process finished with exit code 0

2、init()函数

package main

import "fmt"
import "test"

// 2.
const MAX_VALUE  = 666

// 3.
var num int = getNumber()

// 4.
func init()  {
    fmt.Println("init函数1")
}
func init()  {
    fmt.Println("init函数2")
}
// 5.
func main() {
    /*
    1.在Go语言中保留了两个函数, 一个叫做main,另外一个叫做init
    main函数是由系统调用的, init函数也是由系统调用的

    2.init函数的作用:
    对当前文件进行初始化

    3.调用顺序
    main包 --> 常量 --> 全局变量 --> init函数 --> main函数 --> 执行逻辑代码 --> Exit程序

    4.注意点:
    main函数只能在main包中(package main), 并且一个程序只能有一个,
    但是init函数每个包中都可以有, 并且可以有多个(但是企业开发推荐只写一个)
     */
     fmt.Println("main函数")

     test.getValue()
}

func getNumber() int {
    fmt.Println("返回全局变量需要的值")
    return 888
}

相关文章

  • 11 Go defer语句 && init()函数

    1、defer语句 结果 2、init()函数

  • go web 编程笔记

    函数 go函数接受变参func x(arg ...init)int {} defer defer 会按照后进先出的...

  • go语言的defer语句

    go语言defer语句的用法 defer的语法 defer后面必须是函数调用语句,不能是其他语句,否则编译器会出错...

  • 异常

    1、error接口 2、defer 你可以在Go函数中添加多个defer语句,当函数执行到最后时,这些defer语...

  • Go函数-延迟调用(三)

    在go语言里,defer可是实现延迟函数调用。语句defer向当前函数注册稍后执行的函数调用。这些调用被称做延迟调...

  • 深入理解 Go-Defer的机制

    defer 的作用和执行时机 go 的 defer 语句是用来延迟执行函数的,而且延迟发生在调用函数 return...

  • Go语言学习笔记08.defer

    defer defer可以说是go的一个很牛逼的功能了,将函数暂存,延时执行。defer语句只能出现在函数或方法的...

  • defer go

    Go语言的 defer 语句会将其后面跟随的语句进行延迟处理,在 defer 归属的函数即将返回时,将延迟处理的语...

  • Golang中defer用法

    Go语言中的defer语句会将其后面跟随的语句进行延迟处理。在defer归属的函数即将返回时,将延迟处理的语句按d...

  • 29. Defer

    29. Defer 什么是 defer? defer 语句的用途是:含有 defer 语句的函数,会在该函数将要返...

网友评论

      本文标题:11 Go defer语句 && init()函数

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