iT邦幫忙

0

go lang package問題請教

  • 分享至 

  • xImage

您好:參考
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
這應該沒關係吧??

謝謝

https://ithelp.ithome.com.tw/upload/images/20200728/2010409562fi63kSXd.png

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
listennn08
iT邦高手 5 級 ‧ 2020-07-28 21:39:13
最佳解答

tt 資料夾要建在 C:\Users\user99\go\src\ 也就是 $GOPATH 裡面
原文章內也有提到

這邊要特別注意,函數名稱開頭必須是大寫,這樣才能被識別是全域函數,小寫開頭會被視> 為是私有函數,只能在這個包內使用。儲存為同名的test.go之後,存在$GOPATH/src/test內,接著打開命令行:

https://ithelp.ithome.com.tw/upload/images/20200728/20117165acBXCjLEig.png

0
eric19740521
iT邦新手 1 級 ‧ 2020-08-03 02:56:41

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語法很靈活.用法靈活.若沒仔細.小心入坑

golang 這語言 很不錯....

我要發表回答

立即登入回答