app / main.go
package main
import (
"fmt"
)
var varInMain string
func exm() {
varInMain = "Hello, playground"
fmt.Println(varInMain)
}
app / folder / call.go
package folder
import (
"fmt"
Main "../" -> ERR// or "app" -> ERR
)
func main() {
fmt.Println(Main.varInMain)
}
我无法调用main.go变量或func。从folder / call.go。 我该怎么做? //而且多数民众赞成必须是本地包
答案 0 :(得分:2)
如果要在程序包之间共享var,请创建一个单独的程序包,并在其中用大写字母的第一个字符声明导出的变量。
app / mypack / vars.go
package mypack
var MyVar string
然后导入main和其他软件包,例如 包主
import (
"fmt"
mypack "app/mypack"
)
func main(){
mypack.MyVar = "Hello, playground"
}
以相同的方式导入app / folder / call.go并使用
答案 1 :(得分:1)
Main表示此软件包使用了项目中的所有内容(如果不只是将其从项目中删除,一切都会好起来的)。因此,由于循环导入,您无法导入main。因此,您应该创建单独的程序包,并根据需要在主程序包和其他程序包中使用它。