go語言中匯入包名為何是字串型別的?

時間 2021-08-11 23:51:44

1樓:鄧毅

import 後面跟的字串是包的路徑,這個路徑可以是任何作業系統可以接受的相對路徑,相對於$GOPATH中的任何乙個路徑(再加上 src 等),這裡必須用字串,因為裡面可以包含空格或者其他 Go 不認識的字元。通常,直接引用開源的 package 的話,這裡面一定包含了至少乙個/,例如 "http://

golang.org/x/net/html

"。package 的名字或者別名是一定要是乙個識別符號(identifier)的,因為之後需要用這個名字來引用包中的公開函式、變數等,如 pkgname.Function。

定義和使用識別符號的地方是沒有引號的。

如果不指定別名,在 import 的檔案中使用該 package 的時候,用的是其預設的名字,也就是該 package 的 .go 檔案第一行關鍵字 package 後面的那個識別符號。

你也可以在 import 和路徑之間指定乙個別名,這個別名和定義 package 指定的包名一樣必須是乙個 identifier。指定別名之後,用別名來引用包匯出的各種東西。

此外,用 . 做別名表示可以直接使用該包的函式等,用 _ 做別名表示只是用呼叫package的初始化函式。

具體細節可以參考 Go 的 language spec:https://

golang.org/ref/spec#

Packages

Java語言中String a a String b a 為什麼 a b 值為 true?

求學者 簡單說,a和b是同乙個位址所以相等,至於為什麼相等?因為你給a和b指向的位址是 a 說明 這個是字串常量池裡的a資料子符位址 而不是new string a 說明 這個是乙個指向 a 的資料的位址 可以嘗試一下,new string a a Yang Yi 畫畫記憶體分析圖就明白了。Stri...

王垠噴 Go 語言,許式偉贊 Go 語言,大家怎麼看?

圖南 這幫搞語言開發的,感覺他們一點都不靠譜 30年前你說定義變數應該這樣 int a30年後你說定義變數應該這樣 a int 有毛區別?這是要把我們這幫老人淘汰嗎。總之是怎麼跟以前不一樣怎麼來。 Davie 不請自來 王垠大佬更多的是從理想主義的角度出發來看Go的設計,把Go中的設計不足和缺點分別...

R語言如何匯入Excel的資料?

RODBC包 library RODBC con odbcConnectExcel2007 file con odbcConnectExcel file sqlTables con 檢視excel檔案中sheet的名稱 sqlFetch con,sheet name odbcClose con 當檔...