猿问

找到了包裹但找不到内容?

我在构建我的 go 项目时遇到一个奇怪的错误。


我的结构:


-$GOPATH

 -src

   -main

     -main.go

   -configuration

     -configuration.go

配置.go:


package configuration;


type Config int;


func (c Config) Parse(s string) map[string]string {...}

main.go


package main;


import"configuration"


func main() {

    var config Config;

    argMap := config.parse(...);    

    return;

}

如果我的工作目录是$GOPATH,我会:


go build configuration - no output, OK

go build main

    imported and not used "configuration"

    undefined: Config

所以我的包被找到($GOPATH/pkg包含configuration.go正确的内容 - 我可以看到该Parse方法)并main导入它,但无法识别其内容?


我认为问题是类型Config没有导出?为什么会这样?


呼唤远方
浏览 204回答 2
2回答

噜噜哒

2·1argMap := config.parse(...); 不起作用,因为您声明了一个Parse()方法。(如“导出方法configuration.Parse()”)var config configuration.ConfigargMap := config.Parse(...); Config已导出,但方法区分大小写(参见Exported Identifiers)。

慕尼黑8549860

您正在尝试使用Configfrom package main,它未定义,而不是 from configuration(即错误“已导入但未使用”):package mainimport "configuration"func main() {    var config configuration.Config    argMap := config.Parse(...)}第二个问题是调用 unexportedparse而不是ParseVonC 所解释的。
随时随地看视频慕课网APP

相关分类

Go
我要回答