登录
首页 >  Golang >  Go问答

重构结构体中的数据类型

来源:stackoverflow

时间:2024-03-04 20:36:25 282浏览 收藏

小伙伴们有没有觉得学习Golang很有意思?有意思就对了!今天就给大家带来《重构结构体中的数据类型》,以下内容将会涉及到,若是在学习中对其中部分知识点有疑问,或许看了本文就能帮到你!

问题内容

我无法更改的来源:

{
    "perfectly_normal": "bar"
    "foobool": "0"
}

桌面上有什么:

type hwo struct {
    normality  string `json:"perfectly_normal"`
    makeMeBool ?????? `json:"fooBool"`
}

json.Unmarshal(body, hwo)

"0"/"1" 转换为 false/true 的好方法是什么?


正确答案


您可以使用 DTO 和方法将传递的 dto 转换为所需的 struct

下面是一些伪代码,其中 dto 用于根据 dto 中的值创建新的 hwo 结构。

这带来了额外的好处,即在您不仅仅有 intboolean 转换的情况下,能够更改来自 dto 的任何数据。

评论中提到的自定义类型的 marshalunmarshal 函数也是一个很好的选择,而且可能更简单。

type hwo struct {
    normality  string  `json:"perfectly_normal"`
    makeMeBool boolean `json:"fooBool"`
}

type DTO struct {
  normality string
  fooBool   int
}

func ToHwo(dto DTO) hwo {
  fooBool := true
  if dto.fooBool == 0 {
    fooBool = false
  }

  return hwo {
    normality: dto.nornality,
    fooBool: fooBool,
  }
}

好了,本文到此结束,带大家了解了《重构结构体中的数据类型》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>