1. 同一个包,在同一个目录下面的两个不同文件
如果是同一个包中,在同一个目录下面的两个不同文件,需要调用的函数、变量名称首字母大写,可以直接通过名称调用
2.不同的包中,通过路径来,相对路径从工作区的路径开始
e.g.
gopackagetest/
├── listfunction/
│ └── listfunction.go
└── 61question/
└── 61A.go
61A.go中部分内容:
package main
import( ls "gopackagetest/listfunction")
调用方法:
head *ln.ListNode
listfunction.go中部分内容:
package listnode
说明:
61A.go属于main包,listfunction.go属于listfunction包,在61A.go引入
import lf "gopackagetest/listfunction"
61A.go属于main包,listfunction.go也属于main包,在61A.go引入
import lf "gopackagetest/listfunction"
会报错"import "gopackagetest/listfunction" is a program, not an importable package"
同一个包下的文件,就放同一个文件夹下面
同一个包下的文件,就放同一个文件夹下面。不用import,也不用大写函数名,可以直接调用。但是vscode点击运行是直接运行一个文件,不是一个项目。 ---> 可以使用go run . 命令解决。
3.go文件夹下面多个main函数
gopackagetest/
├── 60question/
└──secondFolder/
└── 60A.go
└── 61question/
└──secondFolder/
└── 61A.go
在多建立一级目录即可
60A.go中部分内容:
package main
func main(){}
61A.go中部分内容:
package main
func main(){}
如果想在61A.go中调用60A.go中 函数或者变量,首先函数名或者变量首字母要大写,然后在61A.go中import( A60 "gopackagetest/60question/secondFolder")
注意:
- 这里没把引入重命名为60A 是因为,不能用数字开头命名
- 引入的时候是写引入路径,不要写包名,这里包名都是main
多一级目录之后main函数就不冲突了,在同一个项目中想有多个main函数,也这样操作,示例: