我需要通过引用传递struct类型的接口,如下所示 . 既然,我不能使用接口指针来构造结构类型变量,我应该如何更改下面的代码来将 te
值修改为 10
?.
package main
import (
"fmt"
)
func another(te *interface{}) {
*te = check{Val: 10}
}
func some(te *interface{}) {
*te = check{Val: 20}
another(te)
}
type check struct {
Val int
}
func main() {
a := check{Val: 100}
p := &a
fmt.Println(*p)
some(p)
fmt.Println(*p)
}
谢谢!
P.S我已经读过,传递指向接口的指针不是一个很好的做法 . 请告诉我什么是更好的方法来处理它
1 回答
所以你正在使用一个接口,你需要某种保证,你可以设置结构的成员的值?听起来你应该保证接口的一部分,所以像这样: