温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

defer执行的顺序

发布时间:2020-05-08 19:52:00 来源:网络 阅读:266 作者:梁十八 栏目:编程语言

defer先进后出
举例:

package main

import (
    "fmt"
    "os"
    "bufio"
)

//打开文件
func writeFile(filename string) {
    file, err := os.Create(filename)
    if err != nil {
        panic(err)
    }
    //往文件写内容(直接写文件会比较慢,所以这里用bufio。先写到内存里,再内存一下写进去会比较快)
    writer := bufio.NewWriter(file)
    for i := 0; i < 20; i++ {
        fmt.Fprintln(writer, i)
    }
    defer file.Close()
    defer writer.Flush()
}

func main() {
    //tryDefer()
    writeFile("haha.txt")
}

先执行writer.Flush(),再执行file.Close()。反之不能写入

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI