golang匯入包的理解

2021-08-14 08:28:49 字數 1261 閱讀 3692



golang匯入包的理解

程式的初始化和執行都起始於main包。如果main包還匯入了其它的包,那麼就會在編譯時將它們依次匯入。有時乙個包會被多個包同時匯入,那麼它只會被匯入一次(例如很多包可能都會用到fmt包,但它只會被匯入一次,因為沒有必要匯入多次)。當乙個包被匯入時,如果該包還匯入了其它的包,那麼會先將其它包匯入進來,然後再對這些包中的包級常量和變數進行初始化,接著執行init函式(如果有的話),依次類推。等所有被匯入的包都載入完畢了,就會開始對main包中的包級常量和變數進行初始化,然後執行main包中的init函式(如果存在的話),最後執行main函式。

import

("fmt"

)

然後在**裡面可以通過如下的方式呼叫

fmt.

println(

"hello world"

)

上面這個fmt是go語言的標準庫,他其實是去goroot下去載入該模組。

1.點操作

import(.

"fmt"

)

這個點操作的含義就是這個包匯入之後在你呼叫這個包的函式時,你可以省略字首的包名,也就是前面你呼叫的fmt.println(「hello world」)  可以省略的寫成println(「hello world」)。注意:該包內的函式不能與其重名。

2.別名操作

import

( f 「fmt」 )

別名操作顧名思義可以把包命名成另乙個用起來容易記憶的名字,別名操作呼叫包函式時字首變成了重新命名的字首,即f.println(「hello world」)。

3._操作這個操作經常是讓很多人費解的乙個操作符,請看下面這個import

)_操作其實只是引入該包。當匯入乙個包時,它所有的init()函式就會被執行,但有些時候並非真的需要使用這些包,僅僅是希望它的init()函式被執 行而已。這個時候就可以使用_操作引用該包了。即使用_操作引用包是無法通過包名來呼叫包中的匯出函式,而是只是為了簡單的呼叫其init函式()。

golang匯入本地包

與python一樣如果要匯入本地包需要建立初始化檔案,go建立初始化檔案的方式有兩種一種是命令的方式go mod init 包名 還可以手動建立,不過需要知道自己go的版本 示例如下 建立乙個名字為test的專案,該專案目錄下有calculator目錄和tt目錄,calculator目錄下有sum....

golang匯入外部包,並解決匯入包慢的問題

1.編寫含有匯入包的 package main import fmt import rsc.io quote func main 2.生成go.mod記錄匯入包的版本等資訊 hello 可以換成其他的字元 go mod init hello 3.執行run命令自動匯入引入的外部包 go run he...

快速理解golang標準庫flag包

flag包實現了命令列引數的解析 基本分為三步 package main import flag fmt os var 1.使用flag.string bool int 等函式註冊flag,解析後儲存到bool,int,string型別的指標 n flag.int n 1,print times s...