代碼
匿名函數的應用場景
一次性的調用
有必要的代碼封裝
應用案例: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) } }