【发布时间】:2021-01-05 23:39:29
【问题描述】:
我想把我所有的模型放在一个共享的 Common 库中。
所以,我做了一个新的回购:gitlab.com/xxx/common
我在里面放了一个包:models
这是一个对象的定义:
type Meter struct {
ID string
OperationID string
Type ConsoProd
Unit string
Timestep time.Duration
Measures []Measure
FetchMethod AcquisitionMethod
Metadata interface{}
}
现在,我想在外部项目中使用它:
go get gitlab.com/xxx/common
Go Modules 会下载它。
我这样导入使用它:
import "gitlab.com/xxx/common/models"
//String transparent method
func (meter models.Meter) String() string {
var stringifyMeter string
stringifyMeter += "Meter " + meter.ID + " is a " + meter.Type.String() + " and compute in operation #" + meter.OperationID + "."
return stringifyMeter
}
但是Goland不会解决它,当我编译时,我得到:
cannot define new methods on non-local type models.Meter
为什么会发生,我可以做些什么来解决它?
【问题讨论】:
标签: go go-modules