gpt4 book ai didi

go - 具有字段标签的匿名结构之间的类型转换

转载 作者:行者123 更新时间:2023-12-01 20:24:47 24 4
gpt4 key购买 nike

我有一个Open API生成的架构,我想在处理函数中创建响应结构。但是,当我想创建匿名结构时,也需要再次编写字段标签。是否有不需要重复的解决方案?这是最小的例子

package main

// Response is generated by a tool in a separated file
type Response struct {
Result *struct {
Id int `json:"id"`
} `json:"result,omitempty"`
}

func main() {
var response Response

response.Result = &struct {
Id int `json:"id"`
}{5}

// This results in an error
// cannot use &struct { Id int } literal (type *struct { Id int }) as type *struct { Id int "json:\"id\"" } in assignment
response.Result = &struct {Id int}{5}
}

当我在api定义的 components部分使用复杂类型作为响应类型时,此匿名结构是 oapi-codegen的结果。我想如果我使用 CreateBookResponseResult类型,则代码生成器将不会生成匿名结构,但我会将此选项推迟到可以的时候。

components:
CreateBookResponse:
type: object
properties:
result:
type: object
properties:
id:
type: integer

最佳答案

使用命名类型。

type Response struct {
Result *ResponseResult `json:"result,omitempty"`
}

type ResponseResult struct {
Id int `json:"id"`
}


var response Response
response.Result = &ResponseResult{Id: 5}

关于go - 具有字段标签的匿名结构之间的类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62157161/

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