【问题标题】:Some tips with Go and GoglandGo 和 Gogland 的一些技巧
【发布时间】:2017-03-26 19:46:27
【问题描述】:

大家好。我对 Go 和 Gogland 很陌生。我有一个项目

  1. 我选择“运行种类”作为包 - 不仅可以运行主文件,还可以运行项目。为什么找不到主包??
  2. 如何将util.myprinter包导入main.go使用??

请帮帮我

【问题讨论】:

    标签: go ide jetbrains-ide goland


    【解决方案1】:

    首先,您的 Go workspace 的一般结构似乎是错误的。你需要让它看起来更像这样:

    D:
    |-- go_projects
    |    |-- bin
    |    |-- pkg
    |    |-- src 
    |    |    |-- FirstSteps
    |    |    |    |-- main.go
    |    |    |    +-- util
    |    |    |         +-- myprinter.go
    |    |    |-- SecondProject
    |    |    |-- ThirdProject
    ...
    

    第二个你的 import 语句似乎是空的,我不知道 GoLand 是如何工作的,但是如果你想使用你的 myprinter.go 文件中的任何内容,你需要导入 util 包,假设myprinter.go 文件在顶部将其 package 声明为 util

    // FirstSteps/main.go
    package main
    
    import (
        "FirstSteps/util"
    )
    
    func main() {
        util.MyPrinterFunc()
    }
    

    当然,要能够使用来自util 的任何东西,首先必须有一些东西......

    // FirstSteps/util/myprinter.go
    package util
    
    func MyPrinterFunc() {
        // do stuff...
    }
    

    编辑:对不起,我最初并没有真正回答你的问题。由于我已经提到的错误工作区设置,您收到错误 Cannot find package 'main'Package path 告诉 GoLand 您要运行的包与$GOPATH/src 目录相对 的位置。所以在你正确设置你的工作空间后,你应该将Package path 设置为FirstSteps,因为该包的绝对路径将是$GOPATH/src/FirstSteps。如果稍后您想要运行 util 包,您可以将 Package path 指定为 FirstSteps/util 以便 GoLand 能够找到它。

    【讨论】:

    • 非常感谢。但是在 gogland 中,您还需要调用“go get gotype” - 之后导入“FirstSteps/util”可以正常工作。在这种情况下,设置中项目的 GOPATH 必须是“d:/go_projects”。潜入其中并不容易 - C++ 更容易:)
    猜你喜欢
    • 2021-05-18
    • 1970-01-01
    • 2011-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多