Anonymous Function
- 匿名函式的使用方法
1 | package main |
- 若覺得還要存放一個變數太麻煩,這也可以省略
1 | package main |
- 想要從另一個函式取得匿名函式
1 | package main |
- 組合技
1 | package main |
Closure
- 閉包是指,變數被關在某個區塊內
1 | package main |
1 | package main |
- 雖然匿名函式內容是封閉的,但
base
變數卻能被關進匿名函式裡,甚至是「匿名函式的匿名函式裡」,這就是閉包的特性。 - 因為 Go 有取址運算,我們能拿得到變數真正的位址。
1 | package main |
- 最後輸出:
1 | In getFunc() 0xc420010058 = 10 |
- 在三個地方的
base
變數位址都是0xc420010058
,這是「變數被關在某個區塊內」所代表的意思。