gpt4 book ai didi

go:暴露的别名结构无法分配给内部结构文字

转载 作者:数据小太阳 更新时间:2023-10-29 03:35:21 24 4
gpt4 key购买 nike

我这样安排我的模型:

  • 项目目录

    • main.go

    • 模型

      • models.go
      • 模型A
        • modelA.go
      • 模型B
        • 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

models/modelA/modelA.go 中:

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
}

正如错误指出的那样,结构类型不同。有没有更好的方法来组织模型?

最佳答案

该错误不言自明:您正试图将错误的值 (models.ModelB) 分配给 ModelB.modelB 结构。
您可以通过导入正确的包轻松解决此问题:

import (
"test.local/projectDir/models/modelB"
)

func main() {
modelA := models.ModelA{
FieldA: "xx",
FieldB: modelB{
FiledC: "yy",
},
}
}

关于go:暴露的别名结构无法分配给内部结构文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42291709/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com