我安排我的模型是這樣的:走:暴露別名結構不能分配給內部結構字面
PROJECTDIR
main.go
車型
- models.go
- MODELA
- modelA.go
- modelB
- modelB.go
我Ñmain.go
: 包主
import (
"test.local/projectDir/models"
)
func main() {
modelA := models.ModelA{
FieldA: "xx",
FieldB: models.ModelB{
FiledC: "yy"
} // here will raise a error: cannot use models.ModelB literal (type models.ModelB) as type modelB.ModelB in field value
}
}
在models/models.go
:
package models
import (
"test.local/projectDir/models/modelA"
"test.local/projectDir/models/modelB"
)
type ModelA modelA.ModelA
type ModelB modelB.ModelB
在:
package modelA
import (
"test.local/projectDir/models/modelB"
)
type ModelA struct {
fieldA string
fieldB modelB.ModelB
}
在models/modelB/modelB.go
:
package modelB
type ModelB struct {
fieldC string
}
由於錯誤指出,結構類型是不同的。有沒有更好的方法來組織模型?
錯誤消息究竟是什麼不清楚的嗎?請注意,您可以使用** not **別名'modelB.ModelB'來鍵入'models.ModelB'。你定義一個**新的**命名類型。像這樣的命名類型可以相互轉換,但是(因爲它們是不同的類型)不能直接分配。 – Volker