一、前言
? ? ? ? 這個文章簡單了寫了一下包、init函數、匿名函數。
二、學習代碼
? ? ? ?1.包
package packTestimport "fmt"func init() { //如果主函數引用了這個包,主函數執行的時候會先執行包的initfmt.Println("hello world")
}func Add(num1 int, num2 int) int {sum := num1 + num2return sum
}// 一個包里不能有相同的函數名,文件名和文件夾名和包名其實可以不一樣,建議包名和文件夾名字一樣
// 同一個文件夾下的文件,要是同一個包里的
package mainimport (test "GoLanguage/packTest" //可以在這給包起別名"fmt"
)func main() {fmt.Println(test.Add(10, 26))}
? ? ? ? 2.init函數
? ? ? ? 先于main執行
func init() { //初始化函數,先于main執行,在這創建的局部變量不是全局,應該是用來給全局變量賦值的//initnum := 64 不可用fmt.Println("initFunction!")
}
? ? ? ? 3.匿名函數
package mainimport (test "GoLanguage/packTest" //可以在這給包起別名"fmt"
)func main() {//下面這個是匿名函數result := func(n1 int, n2 int) int {return n1 + n2}(num1, num2)fmt.Println(result)//匿名函數賦予一個變量,后面通過這個變量使用,跟函數還是很像的,全局變量這么干就跟普通函數差不多了sub := func(n1 int, n2 int) int {return n1 - n2}lastsub := sub(num1, num2)fmt.Println(lastsub)
}