首页 > 解决方案 > 使用 golang 库时的类型问题

问题描述

我有一个出售 golang.org/x/text 库的项目。我的目录结构如下:

projectname/
    server/
        localization.go

    vendor/
        golang.org
            x/
                text/
                    language/
                    message/
                    internal/
                    currency/
                    ...

localization.go我试图以message这种方式使用库中:

import (
    "golang.org/x/text/language"
    "golang.org/x/text/message"
)

func formatCurrency() string {
    p := message.NewPrinter(language.BrazilianPortuguese)
    // do something with p
    return "placeholder"
}

但是,这无法编译并出现错误:

Building... 
# github.com/orgname/projectname/vendor/golang.org/x/text/internal/number
../../vendor/golang.org/x/text/internal/number/number.go:150:41: cannot convert t (type 
"github.com/orgname/projectname/vendor/golang.org/x/text/language".Tag) to type compact.Tag

2018/06/05 18:17:26 compile failed:  [] exit status 2

make: *** [all] Error 1

vendor/golang.org/x/text/internal/number/number.go有它的进口,如:

import (
    "unicode/utf8"

    "golang.org/x/text/internal/language/compact"
    "golang.org/x/text/language"
)

我不知道为什么 number.go 存在类型问题,因为所有必需的库都在供应商目录中以及如何解决它。感谢您的阅读!

标签: go

解决方案


推荐阅读