go - 找到包裹但找不到内容?

标签 go

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

我的结构:

-$GOPATH
 -src
   -main
     -main.go
   -configuration
     -configuration.go

配置.go:

package configuration;

type Config int;

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

主.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 类型没有导出?为什么会这样?

最佳答案

您正在尝试使用未定义的包 main 中的 Config,而不是来自 configurationConfig(这就是错误“进口但未使用”):

package main

import "configuration"

func main() {
    var config configuration.Config
    argMap := config.Parse(...)
}

第二个问题是调用未导出的 parse 而不是 VonC 解释的 Parse

关于go - 找到包裹但找不到内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26956107/

相关文章:

http - 在golang http中发送部分响应后通知http客户端错误的正确方法

go - 对多个文档进行乐观锁定

go - 使用 Gin : How to pass original JSON payload to a Redirect POST

mysql - golang 现在用松鼠更新设置时间

go - 单例实例不断在 Go 中创建新实例

go - 创建结构数组并初始化其中的元素时出错

testing - 如何去测试 Go 例程?

go - 在 Golang 中解析时间秒到时钟

去 source.cloud.google.com 获取

algorithm - 为什么这个二叉树搜索比插入花费的时间长得多?