为了账号安全,请及时绑定邮箱和手机立即绑定

Golang - 通过接口获取指向结构字段的指针

Golang - 通过接口获取指向结构字段的指针

Go
三国纷争 2021-07-12 17:35:21
我还处于理解 Go 接口的早期阶段。我正在编写一些逻辑模拟,并具有类似以下代码的内容(我在这里进行了大量简化):请参阅我的问题的评论:type LogicNode struct {    Input   *bool    Output   *bool    Operator string    Next     Node}func (n *LogicNode) Run() {    // do some stuff here    n.Next.Run()}type Node interface {    Run()}func main() {    nodes := make([]Node, 1000)    for i := 0; i < 1000; i++ {        n := LogicNode{            //assign values etc.        }        nodes[i] = &n    }    for i, node := range nodes {        // I need to access LogicNode's Output pointer here, as a *bool.        // so I can set the same address to other Node's Input thereby "connecting" them.        // but I could only get something like this:        x := reflect.ValueOf(node).Elem().FieldByName("Output")        // which is <*bool Value>        // I couldn't find a way to set a new *bool to the underlying (LogicNode) Struct's Input or Output..    }}我使用接口的原因是因为还有其他节点类型 FloatNode MathNode 等,它们具有不同的字段,但它们实现了自己的 run 方法。我已经成功地使用了 Value 的 SetString 或 SetBool 方法,但无法在那里设置指针......提前致谢。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 227 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信