針對我們工作空間的目錄設定,如果我們只在 goland 中編碼的話, 那就建議使用 project gopath, 需要在其他
ide 中 編碼的話那就全域性變數。
我們摘取官方文件的說法:
go**必須放在工作空間( $gopath ) 內。它其實就是乙個目錄,其中包含三個子目錄:
go
工具用於構建原始碼包,並將其生成的二進位制檔案安裝到pkg
和bin
目錄中。
src
子目錄通常包會含多種版本控制的**倉庫 (例如git或mercurial), 以此來跟蹤乙個或多個原始碼包的開發。
我們所有的go**應該放在 src 目錄下。
bin/
streak # 可執行命令
todo # 可執行命令
oauth.a # 包物件
task.a # 包物件
.hg/ # mercurial **庫元資料
oauth/
oauth.go # 包原始碼
oauth_test.go # 測試原始碼
.git/ # git **庫元資料
oauth.go # 命令原始碼
streak.go # 命令原始碼
todo/
.git/ # git **庫元資料
task/
task.go # 包原始碼
todo.go # 命令原始碼
變數名, 函式名, 常量名首字母大寫, 則可以被其他的包進行訪問, 如果是小寫, 則只能在本包中使用。
簡單理解: 首字母大寫就是公有的, 首字母小寫是私有的。
下方** str 和 str 並不會衝突, 依舊是兩個變數。
因為在 go 中,嚴格區分字母大小寫。
// 嚴格區分字母大小寫
var str string
="私有變數"
var str string
="公有變數"
func
add(a int
, b int
)int
注意我們的go**應該放在 src 目錄下, 而 bin 和 pkg 是執行時生成的檔案。
project/
bin/ # 可執行檔案存放位置
main.exe
pkg/
windows_amd64/ # 包物件
module/
utils/
str-util.a
src/ # go的原始檔, 乙個目錄對應乙個包
module/
main/
main.go
utils/
str-util.go
str-util.go
package utils
var str string
="你好"
func
add(a, b int
)int
main.go
package main
import
("module/utils"
"fmt"
)func
main()
Goland 匯入自定義包問題解決
今天在學習go的物件導向時,想測試go中類屬性 方法的公私有問題,在另外定義乙個包後,發現在main函式中無法匯入。在網上查了很多部落格都沒能解決問題,目錄頁照著修改了 什麼gopath也修改了,參照很多文章,他們的解決方法似乎都不太適合我。經過頭皮發麻,差點爆錘電腦後,終於綜合多篇文章解決問題!這...
GoLand 解決無法匯入自定義包的問題
原因 import 時無法匯入自定義包,提示找不到包,是因為go 有著強制性的規範,需要把所有 放到src目錄,否則將找不到 那麼我們現在有兩種解決方案,既然是從gopath的src下面去找包作為第三方包引入,關鍵問題在於gopath我們要設定在哪。第一種解決方案我們可以直接把我們要匯入的包 自己寫...
ptyhon匯入自定義包
包就是乙個至少包含 init py檔案的資料夾,這個檔案是必須存在的,否則,python就把這個目錄當成普通目錄 資料夾 而不是乙個包。init.py可以是空檔案,也可以有python 因為 init py本身就是乙個模組,而它的模組名就是對應包的名字。呼叫包就是執行包下的 init py檔案。1....