亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Go打包多個文件,如何構造

Go打包多個文件,如何構造

Go
弒天下 2023-06-19 15:46:51
菜鳥,我似乎無法弄清楚如何用包構建我的項目。我想要的是這樣的:我想創建一個包,假設它叫做 Dart。我的項目目錄中有一個名為 dart.go 的文件,其中包含 package main 和 main 函數。我有另一個文件,讓我們在我的項目目錄中將其稱為 functions.go,第一行是“package dart”。我只想在 main 中調用 functions.go 中的函數,但不知道如何命名包以構建它。如果我將 package dart 放在 functions.go 的頂部,它不會構建,因為它會找到 packages main 和 dart。我不希望 functions.go 成為另一個包的一部分,我只想要一個包以及將這個包中的函數拆分為多個文件的能力。這有可能嗎,還是我必須制作多個包裹?飛鏢.gopackage main import (  ...)  func main () {  ...  // call functions declared in functions.go  ...}函數.gopackage dart  import (  ...)func Function1() {  ... }func Function2() {  ...}
查看完整描述

3 回答

?
交互式愛情

TA貢獻1712條經驗 獲得超3個贊

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



查看完整回答
反對 回復 2023-06-19
?
縹緲止盈

TA貢獻2041條經驗 獲得超4個贊

假設它們共享相同的定義,您可以毫無問題地在同一個包下拆分不同的文件package。同一目錄下不同包定義的唯一例外是測試,其中定義包的推薦方法是在_test其上添加(例如package main_testpackage dart_test)。

不確定這是你的情況還是你只是在試驗這種語言,但我想補充一點,當你將相同的域代碼分組在包下并共享它們時,Go 項目更容易維護,從而增加潛在的可重用性。


查看完整回答
反對 回復 2023-06-19
?
天涯盡頭無女友

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!

查看完整回答
反對 回復 2023-06-19
  • 3 回答
  • 0 關注
  • 206 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號