在主包中无法识别导入的更新

我正在处理一个项目并且有几个我创建的包,我将它们导入到我的主项目中。


现在,当我获取代码并将其移动到外部包中时,我可以从我的主项目中调用它的功能。但是一旦我将新函数添加到我的外部包中,我总是undefined func...在构建过程中遇到错误。


我试过重建我的外部包..但没有运气。我能够更新对我的自定义包的引用的唯一方法是重命名外部包和文件夹。


例如,如果我在 /project/blah/blah.go 中有以下内容:


package blah


func DoSomethingCool(s string) {

    fmt.Print(s)

}

我可以在我的主应用程序 (project/web/main.go) 中将此 func 称为blah.DoSomethingCool("Hello World"). 现在这按预期工作。但是现在如果我将包 blah 更新为:


package blah


func DoSomethingCool(s string) {

    fmt.Print(s)

}


func DoSomethingElseEvenCooler(p string, q string) {

    fmt.Print(

        fmt.Sprint(p, q),

    )

}

即使重建了 blah,我也无法调用 blah.DoSomethingElseEvenCooler("p", "q")。我最终得到一个 func 未定义错误。


但是,如果我将 blah 重命名为 foo 并将路径重命名为 /project/foo/foo.go,我可以完美地调用 foo.DoSomethingElseEvenCooler("p", "q")。似乎对包 blah 的引用即使已更改也未更新。在我构建我的主要项目时,有没有办法强制执行此操作?


或者我只是错过了什么?


沧海一幻觉
浏览 179回答 1
1回答

婷婷同学_

呼...运行go install在外部包上修复了我的问题。谢谢!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go