• Welcome to Journal web site.

我是 PHP 程序员

- 开发无止境 -

Next
Prev

go main.go同级目录下不同文件的函数调用

Data: 2016-01-14 08:32:43Form: JournalClick: 21

go语言的包名一般是对应源代码文件的文件夹名,并且包内的代码文件的package xxx最好是包名本身。比如我建立了一个testPackage包(文件夹),在该包内编写的程序都以package testPackage开头:

这样在main.go或者其他包中调用Hello()时,即可通过import关键字引入testPackage包,并找到对应的路径和函数。此时执行go run main.go即可成功运行代码,如下:

 

上面是常见的调用思路。


但是,一般情况下我们的main.go都是在项目的根目录中,比如我这个goMisc目录为项目的根目录,当根目录中有其他go源文件,并且main.go需要调用该文件中的函数时,就不能直接拿常用的方法实现了。

在main.go同级目录下新建一个test.go,并构造一个Test()函数

然后在main.go中调用Test(),编译器不会提示有错误,但是使用go run执行main.go时会报错

可以用三种方式解决:

  1. 在项目根目录的命令行中执行go run .
  2. 执行go run main.go test.go
  3. 如启用 Mod模式,先编译一个 mod文件出来后。执行方式改成“软件包”路径改成mod里的项目名称,然后用IDE右上角的执行来执行软件包

如果mod模式报错出问题:

新创建的golang项目,使用 go mod init 命令时出现 cannot determine module path for source directory xxxxxxx (outside GOPATH, module path must be specified)

解决方案:

这是因为go mod init 初始化项目时,需要定义一个 module ,我们打开一个 go.mod 文件,就会发现第一行就有

module 项目名

因此,在执行 go mod init 时需要定义 module,如:

go mod init 项目名

 

Name:
<提交>