为了账号安全,请及时绑定邮箱和手机立即绑定

反映。值字符串未随 SetString() 更改

反映。值字符串未随 SetString() 更改

Go
繁星点点滴滴 2022-08-24 18:55:17
我在设置反射时遇到了一些麻烦。值,它是不同事物的字符串。在下面返回一个GetValue()reflect.Valueval, err := exp.GetFact(t.(*api.Event_Set).Set.Key).GetValue()if err != nil {    ref := reflect.Indirect(val)    ref.SetString(t.(*api.Event_Set).Set.Value)}在击中SetString时,它会引发恐慌:panic: reflect: reflect.Value.SetString using unaddressable value我尝试了不同的语法,即没有间接,Elem()等。如何正确更改字符串的值?
查看完整描述

2 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

我可能没有完整的代码,但像这样的东西是有效的:


package main


import (

    "fmt"

    "reflect"

)


func main() {

    s := "test"

    value := reflect.ValueOf(&s)

    ref := reflect.Indirect(value)

    ref.Set(reflect.ValueOf("test1"))

    fmt.Printf(s)

}


查看完整回答
反对 回复 2022-08-24
?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

我看到了这样的东西,使用了最后一个回答者的代码。


package main


import (

    "fmt"

    "reflect"

)


func main() {

    s := "test"

    ref := reflect.ValueOf(&s).Elem()

    ref.Set(reflect.ValueOf("test1"))

    fmt.Printf(s)

}


查看完整回答
反对 回复 2022-08-24
  • 2 回答
  • 0 关注
  • 68 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信