Golang - Как установить значение через указатель, когда указатель является интерфейсом {} - PullRequest
1 голос
/ 16 апреля 2020

Я очень новичок в 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 {}) Как я могу решить эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...