如何在main.go中找到运行功能的条目?

时间:2019-01-10 06:35:07

标签: go

我不是GO程序员,当我阅读GO的代码时,我会找到这样的代码

func main() {
  ......
        run(options)
}

我很困惑,函数运行会运行什么?有人可以帮助吗?

2 个答案:

答案 0 :(得分:0)

好吧,公平地说,您发布的代码将产生以下内容:

prog.go:4:3: syntax error: unexpected ..., expecting }

https://play.golang.org/p/HMv-FydjKWf

但是,在更完整的示例中:

package main

import "fmt"

type Options struct {
    Enabled bool
}

func run(opts Options) {
    fmt.Printf("%+v\n", opts)
}

func main() {
    opts := Options{
        Enabled: true,
    }

    run(opts)
}

https://play.golang.org/p/-bHPWWxi-wm

Go的基础是从main函数开始执行程序。在这种情况下,您要调用函数run,并为其提供一些您决定的运行时选项(例如我的情况,Enabled毫无理由地为true)。

我建议您看一下https://tour.golang.org/以了解该语言。除去一些语法选择,Go中没有什么特别独特的东西。

Go在代码编写方面非常明显。为此,没有什么是魔术,并且对发生的事情有非常简单的编程说明。不确定run做什么?转到该功能并检查一下!一旦弄清了语法,您将惊讶于它们的可读性。

+ Edit :我要说的最后一点是,如果您只是查找 func run()困难,只需“在目录中查找”或您选择的编辑器称之为的任何东西。该功能将在同一文件夹中的文件中。我还建议为各种编辑器(VS Code,Sublime,Atom等)签出一些Go软件包,以便您只需单击即可到达该函数的位置。这些省时的方法对您有所帮助,并且基本上只是为您“查找目录”。

答案 1 :(得分:0)

必须定义一个名为run的函数,该函数在文件范围内可用。在以下情况下,功能在文件范围内可用:

  • 该功能显然是在文件中定义的
  • 该函数在同一目录下的另一个文件中定义(相同的软件包)
  • 该函数在一个包中定义,该包使用用于导入的点语法导入到范围中

    import . "anotherpackage"
    

    如果该程序包导出了一个函数,它将在当前文件中可用。

    在您的示例代码中,函数run是小写的。由于Go中的软件包仅导出以大写字母开头的函数,因此这种情况不太可能。