go - 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 {})
如何解决?
解决方案
推荐阅读
- visual-studio - VSCode 选择性地删除黄色波浪状建议
- python - 如何强制 mypy 的reveal_type 显示超类型?
- jestjs - 开玩笑,使用不同的 jest.mock 进行不同的测试
- python - 如何知道python包的特性?
- c - 使用 C 检测 Linux 中拔出的电缆
- php - 无法在 Docker x Wordpress Local 上为 MacOS 10.13.6 定制任何东西
- ruby-on-rails - 如果没有传入强参数,我如何更新当前模型中的参数?
- c# - 我应该如何在 C# 中命名支持属性?
- c# - c#将double转换为字符串问题
- django - 向表单添加了更多字段,但未显示更改