LOFTER for ipad —— 让兴趣,更有趣

点击下载 关闭
延迟语句--defer

一、初识defer
func main(){
    defer fmt.println("world")
    fmt.println("hello")
}
==>hello
        world
=>defer语句会在函数最后执行,被延迟操作的是defer后面的内容

二、特点
defer后面的表达式必须是外部函数的调用.上面的例子是针对fmt.println函数的延迟调用
1)只有当defer语句全部执行,defer所在的函数才能算真正结束执行
2)当函数中有defer语句时,需要等待所有defer语句执行完毕,才会执行return语句
=》defer常用于回收资源,清理收尾
func print(){
    fmt.println("hello")
}
func main(){
    for ;i<5;i++{
        defer print()
}
}
==>5,5,5,5,5
func print(i int){
    fmt.println(i)
}
func main(){
    for ;i<5;i++{
        defer print(i)
}
}
==>4,3,2,1,0(相当于先储存(0,1,2,3,4)),在输出(4,3,2,1,0)【这也是所谓的后进先出】

推荐文章
评论(0)
分享到
转载我的主页