在golang中通过引用初始化函数的变量

如果我有一个将引用作为参数的函数,并且我想使用该函数来初始化一个变量,我需要在 init() 函数中执行此操作。该解决方案有效,但对我来说闻起来并不正确。


有没有另一种方法来初始化一个包的变量,比如使用 init() 函数?


我认为必须有更好的方法。我已经考虑过包装功能,但这使得逻辑并没有更好。


我准备了一个简短的示例包 main


import (

    "fmt"

)


var a string

//A use of a function is not allowed

//foo(&a)



//Need to call init

func init() {

    foo(&a)

}


func main() {

    fmt.Println(a)

}


func foo(b *string) {

    *b = "abc"

}

https://play.golang.org/p/GdBiDFB1KAe


莫回无
浏览 145回答 1
1回答

Cats萌萌

没关系,或者您可以创建一个指针并像这样分配它:var a = make("abc")func main() {    fmt.Println(*a)}func make(s string) *string {    return &s}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go