【发布时间】:2020-10-25 04:29:13
【问题描述】:
所以我有一些接口和结构:
type Component interface{}
type Position struct{
x float64
}
func Main(){
var components []Components
components = append(components, &Position{1.0})
pos := components[0] // this is a Component, however reflect.TypeOf() returns *Position
*pos = Position{2.0} // this won't compile as golang says you can't dereference a 'Component'
}
如何修改我检索到的 pos 变量中的实际值(例如更改“x”)?我将这些指针存储在组件切片中,因为有多种类型可以实现组件。 我试过这样做:
func Swap(component *Component, value Component){
*component = value
}
但是这不起作用(它会运行但新值未更新)。如何取消引用组件并为其赋值?
【问题讨论】:
标签: pointers go struct interface dereference