Я очень новичок в 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
. Можно ли задать ms через указатель q новое значение MyStruct{2}
? Я получаю эту ошибку invalid indirect of q (type interface {})
Как я могу решить эту проблему?