3 回答

TA貢獻1712條經驗 獲得超3個贊
如果您想做的只是訪問不同文件中的函數,請使用 functions.go 開頭而package main
不是package dart
. 這樣,您就在一個包中工作,但您的代碼分為多個文件。確保它們在同一個目錄中,以便它們被視為在同一個包中。

TA貢獻2041條經驗 獲得超4個贊
假設它們共享相同的定義,您可以毫無問題地在同一個包下拆分不同的文件package
。同一目錄下不同包定義的唯一例外是測試,其中定義包的推薦方法是在_test
其上添加(例如package main_test
或package dart_test
)。
不確定這是你的情況還是你只是在試驗這種語言,但我想補充一點,當你將相同的域代碼分組在包下并共享它們時,Go 項目更容易維護,從而增加潛在的可重用性。

TA貢獻1831條經驗 獲得超9個贊
如果您只是想創建一個庫,那么您將不需要主包。但是,如果您希望創建一個運行來自不同包 ( dartlib) 的函數的獨立程序,那么您將需要一個主文件。
將您的程序命名為與您正在調用的庫(程序 dart調用庫 dartlib)不同的名稱也是一個好主意
圖書館
您的庫目錄結構應如下所示:
dartlib
|
?dartlib.go
dartlib.go
package dartlib
function Hello() string { return "hello!" }
這可以按以下方式導入: "github.com/your_github_username/dartlib"
程序
或者,您可以將包存儲在您的程序目錄中。在這種情況下,目錄結構應如下所示:
dart (you_program_name)
|
?dart.go
?dartlib (package)
?|
? dartlib.go
在這種情況下,可以按以下方式導入庫: "github.com/your_github_username/dart/dartlib"
飛鏢.go
package main
import (
?"github.com/your_github_username/dart/dartlib"
?"fmt"
)
helloString := dartlib.Hello()
fmt.Println(helloString)
go build .在根目錄生成dart可執行文件。
$./dart
?hello!
- 3 回答
- 0 關注
- 206 瀏覽
添加回答
舉報