首页 >后端开发 >Golang >通过反射器指针设置map1和map2的值

通过反射器指针设置map1和map2的值

PHPz
PHPz转载
2024-02-09 18:50:08533浏览

通过反射器指针设置map1和map2的值

php小编柚子在这里为大家介绍一种使用反射器指针的方法来设置map1和map2的值。通过反射器指针,我们可以方便地访问和修改对象的属性和方法,实现对map1和map2的值的动态设置。这种方法不仅简单易懂,而且提供了灵活性,可以根据需要随时更改map1和map2的值。下面就让我们一起来看看具体的操作步骤吧!

问题内容

测试我的示例代码: https://go.dev/play/p/g7lxjdnjnan

最终结果:

&{0}
&{1}

我希望如何从示例终端输出

&{1}
&{1}

我在项目中的代码:

func Set(recv *Value, value Value) {
    reflect.ValueOf(recv).Elem().Set(reflect.ValueOf(value))
}

func (this *SetBlock) On_Exec(locals map[string]Value) {
        //this.inputs["Recv"].Value is pointing to the same value as global
    if this.inputs["Recv"].Value != nil {
        Set(&this.inputs["Recv"].Value, this.inputs["Value"].Value.Copy())
    }
        //this.layer.Game.Globals() is a original
        fmt.Println(this.layer.Game.Globals())
    this.outputs["After"].Value = Create_Bool(true)
}

我来这里是因为我什至不知道如何研究这个。

有变化 a和b。 帮助我使用“设置”功能的人发送了一个代码。 希望你也发来。 由于某种原因它起作用了,但现在不起作用了。

我无法分配给地图, 因为这个函数的制作方式使得我什至不知道该值是来自数组(如果它是变量还是地图标签)

“设置”功能适用于不同类型 https://go.dev/play/p/tggxpxf5kx9

我确信可行的一种方法是创建一个指针,而不是地图指针, 一个指向 2 个映射值的指针

“设置”功能基于将指针设置为另一个指针。 我认为错误是我指向了错误的指针

解决方法

我设想,在创建值时我创建了两个指向该值的指针,即 ** 并以这种方式改变。 谢谢:@JimB

以上是通过反射器指针设置map1和map2的值的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文转载于:stackoverflow.com。如有侵权,请联系admin@php.cn删除