首页 > 解决方案 > Golang - 当指针为接口时如何通过指针设置值{}

问题描述

我对 Golang 很陌生,我正在尝试通过指针设置值。通常我可以这样做

p := &i         // point to i
*p = 21         // set i through the pointer

但是如果指针是一个接口{}

package main

import "fmt"

func doStuff(q interface{}) {
    *q = MyStruct{2}
}

type MyStruct struct {
    f1 int
}

func main() {
    ms := MyStruct{1}
    doStuff(&ms)
    fmt.Printf("Hello, playground: %v\n", ms)
}

假设我不能修改doStuff函数以接受*MyStruct. 是否可以通过指针 q 将 ms 设置为具有新值MyStruct{2}?我收到此错误 我该invalid indirect of q (type interface {})如何解决?

标签: go

解决方案


推荐阅读