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

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

如何修復我的 golang 導入周期錯誤

如何修復我的 golang 導入周期錯誤

Go
一只斗牛犬 2022-07-25 10:45:44
所以我制作了一個基本的 go 包,它只在終端中為你提供彩色文本,現在我已經配置了這些東西,為包創建了 go mod,但是當我運行正在導入包的文件時,它給了我這個錯誤import cycle not allowedpackage main        imports github.com/Rachit4/colora        imports github.com/Rachit4/colora我的 main.go 文件是package mainimport "github.com/Rachit4/colora"func main() {        red("test")}
查看完整描述

2 回答

?
鳳凰求蠱

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

您嘗試導入的包似乎有問題。我建議閱讀文檔中的發布 go modules部分。我的預感是 go runtime 沒有將其識別為正確的模塊(也許嘗試在 colora 包中添加 go.mod)。



查看完整回答
反對 回復 2022-07-25
?
慕容3067478

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

更新

在評論中進一步澄清之后。


您的模塊未初始化。在此處和此處查找官方 Go 教程。我將在答案中逐步向您展示。


您首先需要go mod init在項目的根目錄中使用。我假設您使用的是 Linux,但您可以在 Windows 中執行相同的命令。


在您的終端內:


$ go mod init github.com/Rachit4/colora

其次,為了讓您的主包訪問您在包 colora 中的功能,您需要將export它們更改為大寫字母。


我的項目結構:


- colora (module github.com/Rachit4/colora)

  - go.mod

  - colora.go

  - test.go

  - test/

    - main.go

請在我的 Go Playground 中查看代碼。


例如,調用同一個包內的函數:


test.go



package colora


func test() {

    red("I am red")

}


test/main.go


package main


import "github.com/Rachit4/colora"


func main() {

  red("i am red") // this won't work

}

colora.go通過大寫您的方法導出文件中的函數。


colora.go


func Red(text string) {

    fmt.Println(string(colorRed), text)

}


現在它將可以main.go調用


colora.Red()

我建議閱讀有關構建項目的內容,盡管 Go 對構建項目有非常寬松的指導方針——他們確實建議將實例的 pakcage 保存在單獨的文件夾中。如果你想要更多的結構,你可以查看這個關于 Go 項目布局的GitHub 存儲庫。


舊答案

因此,如果我對您的理解正確,您有一個要在新項目中導入的 go 包(“github.com/Rachit4/colora”)?還是它仍然在同一個項目中?


如果你在一個新項目中導入它,你是否可能不小心給新項目一個同名的模塊?


所以例如


項目一:


github.com/Rachit4/colora/(go.mod 中的模塊)

colora.go

項目二:


github.com/Rachit4/colora/(go.mod 中的模塊)

main.go <-- 導入“github.com/Rachit4/colora”


查看完整回答
反對 回復 2022-07-25
  • 2 回答
  • 0 關注
  • 147 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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