我想让两个接口引用相同的值(意味着如果你更新一个,另一个将更新为相同的东西):
package main
import (
"fmt"
"reflect"
)
func main(){
var a, b any
a = "Hi"
b = reflect.ValueOf(&a).Elem()
a = reflect.ValueOf(&b).Elem()
b = "Howdy"
fmt.Println(a)
fmt.Println(b)
}
打印日志
Howdy
Howdy
游乐场: https://go.dev/play/p/qizVO42UaUj
a这段代码按预期工作,除了和b不是接口这一事实。所以当我将它们转换为这样的接口时......
package main
import (
"fmt"
"reflect"
)
func main(){
var a, b any
a = "Hi"
b = reflect.ValueOf(&a).Elem().Interface()
a = reflect.ValueOf(&b).Elem().Interface()
b = "Howdy"
fmt.Println(a)
fmt.Println(b)
}
打印日志
Hi
Howdy
游乐场: https://go.dev/play/p/jCpuepBJYdD
...代码不再按预期工作。
有没有办法在保持两个接口引用相同值的同时使用接口数据类型而不是 reflect.Value 数据类型?
芜湖不芜
相关分类