跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 请教 Go 用反射修改结构体的值的问题
未分類
14 1 月 2021

请教 Go 用反射修改结构体的值的问题

请教 Go 用反射修改结构体的值的问题

資深大佬 : jonathanchoo 9

如果是普通的结构体,遍历 numField 根据 Field(i).Name 修改就可以了

但是如果遇到嵌套结构体怎么办

例如

type A struct {   field1 string   ...   B }  type B struct {   field2 string } 

如何修改修改 field2 的值呢?

大佬有話說 (2)

  • 資深大佬 : notamail

    1. 你这并不是嵌套结构体。。。
    2. 这种结构可以考虑用 map 来处理

  • 資深大佬 : joesonw

    1. 私有变量改不了的.
    2. struct 也是修改不了, 要 *B

    type A struct {
    Field1 string
    *B
    }

    type B struct {
    Field2 string
    }

    func main() {
    a := A{B: &B{Field2: “123”}}
    println(a.B.Field2)
    v := reflect.ValueOf(&a)
    v.Elem().FieldByName(“B”).Elem().FieldByName(“Field2”).Set(reflect.ValueOf(“456”))
    println(a.B.Field2)
    }

    https://play.golang.org/p/dJ5sWunyVby

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具