Pat*_*tfo 7 global-variables package go
如何将我的全局变量移动到 Go 中的其他包?
喜欢
package main
import "myapp/controllers"
var something string
func main(){
something = "some text"
}
Run Code Online (Sandbox Code Playgroud)
ASH*_*ASH 12
只是添加戴夫斯的答案,以及您可能遇到的另一个问题。变量名需要以大写字母开头才可见
package main
import "myapp/controllers"
var Something string
func main(){
Something = "some text"
}
Run Code Online (Sandbox Code Playgroud)
此外,如果 go.mod 文件中的模块名称很奇怪,您可能会遇到问题。在这个例子中,它应该看起来像这样
module myapp
go 1.16
require ()
Run Code Online (Sandbox Code Playgroud)
就像你想在你的包中有一个全局可访问的变量controllers?:
package controllers
var Something string
var SomethingElse string = "whatever"
func init(){
Something = "some text"
}
Run Code Online (Sandbox Code Playgroud)
然后你可以做
package main
import (
"myapp/controllers"
"fmt"
)
func main(){
fmt.Println(controllers.Something, controllers.SomethingElse) //some text
}
Run Code Online (Sandbox Code Playgroud)