登录
首页 >  Golang >  Go问答

Reflect.Value 字符串不随 SetString() 改变

来源:stackoverflow

时间:2024-03-29 19:21:33 140浏览 收藏

积累知识,胜过积蓄金银!毕竟在Golang开发的过程中,会遇到各种各样的问题,往往都是一些细节知识点还没有掌握好而导致的,因此基础知识点的积累是很重要的。下面本文《Reflect.Value 字符串不随 SetString() 改变》,就带大家讲解一下知识点,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

问题内容

我在设置 reflect.value 时遇到了一些麻烦,它是一个不同的字符串。

在下面的getvalue()中返回一个reflect.value

val, 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() 等。如何正确更改字符串的值?


正确答案


我可能没有完整的代码,但类似这样的代码可以工作:

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)
}

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《Reflect.Value 字符串不随 SetString() 改变》文章吧,也可关注golang学习网公众号了解相关技术文章。

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