如果我有一个将引用作为参数的函数,并且我想使用该函数来初始化一个变量,我需要在 init() 函数中执行此操作。该解决方案有效,但对我来说闻起来并不正确。有没有另一种方法来初始化一个包的变量,比如使用 init() 函数?我认为必须有更好的方法。我已经考虑过包装功能,但这使得逻辑并没有更好。我准备了一个简短的示例包 mainimport ( "fmt")var a string//A use of a function is not allowed//foo(&a)//Need to call initfunc init() { foo(&a)}func main() { fmt.Println(a)}func foo(b *string) { *b = "abc"}https://play.golang.org/p/GdBiDFB1KAe
1 回答
Cats萌萌
TA贡献1805条经验 获得超9个赞
没关系,或者您可以创建一个指针并像这样分配它:
var a = make("abc")
func main() {
fmt.Println(*a)
}
func make(s string) *string {
return &s
}
- 1 回答
- 0 关注
- 142 浏览
添加回答
举报
0/150
提交
取消