包是結構化**的一種方式:每個程式都由包(通常簡稱為 pkg)的概念組成,可以使用自身的包或者從其它包中匯入內容。
和python一樣,把相同功能的**放到乙個目錄,稱之為包
包可以被其他包引用
main包是用來生成可執行檔案,每個程式只有乙個main包(main包裡有且只有main函式)
包的主要用途是提高**的可復用性
下面以如下目錄結構講述包的使用,並會以**注釋方式講解語法點
test0.go檔案內容
package test0//一般該.go檔案在test0包下,這個檔案開頭第一句就要這樣寫
import
"fmt"
func
test0()
func
test0()
func
mytest()
test00.go檔案內容
package test0//該.go檔案同樣在test0包下,這個檔案開頭第一句也要這樣寫
import
"fmt"
func
test00()
func
test00()
test1.go檔案內容
package test1//一般該.go檔案在test1包下,這個檔案開頭第一句就要這樣寫
import
"fmt"
func
test1()
test2.go檔案內容
package test22//一般該.go檔案所在目錄檔案包是test2,但是這裡第一句package 包名是test22,這是可以的
import
"fmt"
func
test2()
another_main.go檔案內容
package main//在main包下的所有.go檔案都必須有這一句,不然會報錯,而且是不能package 其他包名
import
("36go/包/test0"
//要使用哪個包就要相應的匯入
"fmt"
)//同個包下不可重複定義
//func test0inmain()
func
test0inmainnosamefile()
func
test0inmainnosamefile()
//同個main包下兩個.go檔案都有main函式,使用go run 命令指定編譯執行其中乙個.go檔案,是可以正常執行不報錯的
func
main()
func
test1inmainnosamefile()
func
mytestinmainnosamefile()
main.go檔案內容
package main//該.go檔案在main包下,這個檔案開頭第一句就要這樣寫
import
("36go/包/test0"
"fmt"
test "36go/包/test1"
//使用包別名
"36go/包/test2"
)//必須匯入的是包,不是單個檔案
//go對字母大小寫敏感,test0inmain和test0inmain是不同函式
func
test0inmain()
func
test0inmain()
func
main()
func
test1inmain()
func
mytestinmain()
這裡還有一點就是從實際目錄上來看main.go檔案和another_main.go並沒有在main包下,這裡go用了隱性包含
也就是.go檔案第一句開頭package 包名,這個包名不一定就是該檔案就是所在的目錄資料夾名,只不過一般我們習慣是把這二者統一為一致最好。
還有就是有時會碰到一些.go檔案第一句是如下情況的
Go語言之旅 閉包
閉包是在詞法上下文中引用了自由變數的函式,這種說法可能太過學術化了,很難理解。用通俗的話來說,閉包相當於在乙個函式中,去捕獲自由變數 在函式外部定義但在函式內被引用的變數 當脫離了捕獲該自由變數的上下文,依舊可以使用該自由變數。我們來看乙個例子 func test x int func func m...
Go 語言包的概念
golang 包的理解 在 golang 中,使用包是一件常見的事,包的本質實際上就是建立不同的資料夾,來存放程式檔案。個人理解大概相當於 php 的命名空間的概念。golang 的每乙個檔案都屬於乙個包,也就是說go是以包的形式來管理檔案和專案目錄結構的。golang 包的三大作用 區分相同名字的...
Go語言之GO 語言常量
相對於變數,常量是恆定不變的值,多用於定義程式執行期間不會改變的那些值。常量的宣告和變數宣告非常類似,只是把var換成了const,常量在定義的時候必須賦值。const pi 3.1415 const e 2.7182宣告了pi和e這兩個常量之後,在整個程式執行期間它們的值都不能再發生變化了。多個常...