您好:參考
https://ithelp.ithome.com.tw/articles/10202858
我是用VS code來開發
我實體目錄 D:\gotrain
我新增一個資料夾tt ,(應該是package也是一層目錄 ??)
在tt\新增一個 ttXX.go
於VS CODE 的trmial 下指令
PS D:\gotrain> go build tt
can't load package: package tt: cannot find package "tt" in any of:
c:\go\src\tt (from $GOROOT)
C:\Users\user99\go\src\tt (from $GOPATH)
PS D:\gotrain>
請問,這實際該如何建立 及產生package
另外,D:\gotrain> 下,有多個 go 及 exe ,都是import main 及function main
這應該沒關係吧??
謝謝
tt 資料夾要建在 C:\Users\user99\go\src\
也就是 $GOPATH
裡面
原文章內也有提到
這邊要特別注意,函數名稱開頭必須是大寫,這樣才能被識別是全域函數,小寫開頭會被視> 為是私有函數,只能在這個包內使用。儲存為同名的test.go之後,
存在$GOPATH/src/test內
,接著打開命令行:
1.windows環境變數 設定golang的 使用者專案路徑
gopath=D:\gotrain
所以你的專案要放在
D:\gotrain\src\tt
src這個目錄要自己手動建立
pkg這個目錄要自己手動建立
2.import main 這個我沒見過
golang 每一個檔案都看成一個package
主程式的話,package main 一般這麼用,
你的檔名可以命名為
main.go或者你的ttXXX.go
或者tt
package main
import (
"fmt"
"tt"
)
func main() {
i := 2
fmt.Printf("Is %d even? %v\n", i, tt.Even(i))
}
如果你要引用包,那他就是package tt
tt.go
(你的專案名稱叫tt,但引用的package 叫tt,這會讓人混淆)
package tt
func Even(i int) bool {
return i % 2 == 0
}
func Odd (i int) bool {
return i % 2 == 1
}
3.編譯的時候.golang會去找packeage main,把這檔案當執行檔名喔
D:\gotrain\go build tt
它會產生tt.exe
你也可以在
D:\gotrain\src\tt\go build tt
同目錄下,它會產生tt.exe
你的專案名稱叫tt,但引用的package 叫tt,這會讓人混淆
我建議那檔案 ,命名為util.go (公用庫)
package util
func Even(i int) bool {
return i % 2 == 0
}
func Odd (i int) bool {
return i % 2 == 1
}
主程式 我會命名為main.go或是 tt.go
golang語法很靈活.用法靈活.若沒仔細.小心入坑