【GO】函數:匿名函數

代碼

匿名函數的應用場景

一次性的調用
有必要的代碼封裝
應用案例:defer 和 go微信

defer的應用場景

defer是一個延遲執行的指令。這個在以前的defer延遲執行學習過了,不能忘記哦!併發

defer會在全部程序運行結束後執行,假若有多個defer誰在最後誰先執行函數

這個應用場景就是延遲執行一個匿名函數 ,這個函數須要進行簡單的封裝,可是又不進行復用,全部就直接使用匿名函數便可
在這裏插入圖片描述學習

go的應用場景

在這裏插入圖片描述
假如說如今咱們須要倆個方法同時的執行,那麼就須要使用go了
使用go加匿名函數,就能夠很簡單的解決這個問題,同時也解決了代碼進行簡單封裝,不影響程序結構
在這裏插入圖片描述spa

代碼

package main

import (
	"fmt"
	"time"
)

/** 認識匿名函數 */
func main01() { 
	// 匿名函數
	sum := func(a, b int) int { 
		return a + b
	}(3, 4)
	fmt.Println(sum)
}

/** defer的應用場景 */
func main02() { 
	// 這裏的defer只是一個簡單的輸出,假如是不少的業務邏輯須要處理
	// 但又不須要單獨封裝的話,就須要使用defer來作這件事情嘍!
	//defer fmt.Println("我是最後一個執行的")

	defer func(count int) { 
		for i := 0; i <= count; i++ { 
			fmt.Println("咔咔手賺網的地址是:fangkang.top")
			fmt.Println("咔咔博客的地址是:blog.fangkang.top")
		}
	}(3)
	// 在以前的學習過程當中呢!咱們學習過這個defer指的是延遲執行
	fmt.Println("一二三四五")
	fmt.Println("咔咔手賺網")
	fmt.Println("咔咔博客")
	fmt.Println("fangkang.top")
}

/** go的應用場景 */
func main() { 
	// go就是併發執行
	go func() { 
		for i := 2; i <= 10; i += 2 { 
			fmt.Println("我是併發協程", i)
			time.Sleep(time.Second)
		}
	}()

	for i := 0; i < 5; i++ { 
		fmt.Println(i)
		// 等待秒鐘執行
		time.Sleep(time.Second)
	}
}

博主微信歡迎交流

在這裏插入圖片描述

相關文章
相關標籤/搜索