我想把我所有的模型放在一个共享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
为什么会发生,我能做些什么来解决它?