GoLand匯入自定義包

2021-09-25 02:27:23 字數 2296 閱讀 3461

針對我們工作空間的目錄設定,如果我們只在 goland 中編碼的話, 那就建議使用 project gopath, 需要在其他

ide 中 編碼的話那就全域性變數。

我們摘取官方文件的說法:

go**必須放在工作空間( $gopath ) 內。它其實就是乙個目錄,其中包含三個子目錄:

go工具用於構建原始碼包,並將其生成的二進位制檔案安裝到pkgbin目錄中。

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....