go語言之包的概念

2021-10-23 22:51:26 字數 2157 閱讀 4057

包是結構化**的一種方式:每個程式都由包(通常簡稱為 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這兩個常量之後,在整個程式執行期間它們的值都不能再發生變化了。多個常...