zoukankan      html  css  js  c++  java
  • go语言基础之defer和匿名函数结合使用

    1、匿名函数结合使用

    示例1:

    package main //必须
    
    import "fmt"
    
    func main() {
    	a := 10
    	b := 20
    
    	defer func() {
    		fmt.Printf("a = %d, b = %d
    ", a, b)
    	}() //()代表调用此匿名函数
            
    //先执行外部的,再执行内部的 a = 111 b = 222 fmt.Printf("外部:a = %d, b = %d ", a, b) }

    执行结果:

    外部:a = 111, b = 222
    a = 111, b = 222
    

      

    示例2:  代表调用此匿名函数, 把参数传递过去,已经先传递参数(原来已经把a = 10 ,b = 20传递过去了),只是没有调用

    package main //必须
    
    import "fmt"
    
    func main() {
    	a := 10
    	b := 20
    
    	defer func(a, b int) {
    		fmt.Printf("a = %d, b = %d
    ", a, b)
    	}(a, b) //a = 10,b =20 ()代表调用此匿名函数, 把参数传递过去,已经先传递参数,只是没有调用
    
    	a = 111
    	b = 222
    	fmt.Printf("外部:a = %d, b = %d
    ", a, b)
    }
    

    执行结果:

    外部:a = 111, b = 222
    a = 10, b = 20
    

      

  • 相关阅读:
    Netty Nio启动全流程
    线性表
    java stream 原理
    SpringBoot 分布式session
    mockito
    RxJava
    HandlerMapping 详解
    SpringMVC 架构
    Spring Cloud 配置服务
    SpringBoot常用配置简介
  • 原文地址:https://www.cnblogs.com/nulige/p/10233200.html
Copyright © 2011-2022 走看看