【问题标题】:How to import main folder from another folder [duplicate]如何从另一个文件夹导入主文件夹[重复]
【发布时间】:2019-08-16 10:44:03
【问题描述】:

app/main.go

package main

import (
   "fmt"
)
var varInMain string

func exm() {
    varInMain = "Hello, playground"

    fmt.Println(varInMain)
}

app/文件夹/call.go

package folder

import (
    "fmt"
    Main "../" -> ERR// or "app" -> ERR
)

func main() {

    fmt.Println(Main.varInMain)
}

我不能调用 main.go 变量或函数。来自文件夹/call.go。 我该怎么做? //而且那必须是本地包

【问题讨论】:

  • 您不能导入主包。一个 goapp 只能有一个主包。你想达到什么目的?
  • 我很抱歉我的错误。已编辑

标签: go


【解决方案1】:

如果您想跨包共享变量,请创建一个单独的包,在其中通过大写字母中的第一个字符声明导出的变量。

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 并使用

【讨论】:

  • 谢谢你的工作
【解决方案2】:

Main 意味着这个包使用你项目中的所有东西(如果不只是从你的项目中删除它,一切都会好的)。因此,由于循环导入,您无法导入 main。因此,如果需要,您应该创建单独的包并在 main 和其他包中使用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-24
    • 1970-01-01
    • 2022-06-13
    • 2021-10-02
    • 2013-06-03
    • 2016-04-12
    • 1970-01-01
    • 2018-10-30
    相关资源
    最近更新 更多