既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
func main() {
fmt.Println(“vim-go”)
//test api
Api()
}
如上,两个文件都属于同一个`main`包,直接编译即可。

##### 二、同一目录多个包时
##### 方式1:通过GOPATH管理多个package
先引入一个知识点。
###### Go compiler的package搜索顺序
1. 首先,Go compiler会在GO安装目录(GOROOT,这里Linux安装目录/usr/local/go)下查找是否有src/pkg/hello相关包源码;如果没有则继续;
2. 如果export GOPATH=PATH1:PAHT2,则Go compiler会依次查找是否存在PATH1/src/hello、PATH2/src/hello;配置在GOPATH中的PATH1和PATH2被称作workplace
3. 如果在上述几个位置均无法找到hello这个package,则提示出错。
###### 验证测试
这里自己的go版本比较高,所以直接关闭了go mod机制,同时设置GOPATH路径来测试:
➜ main export GOPATH=/data/home/cooperswang/code_study/
➜ main go env GOPATH
/data/home/cooperswang/code_study/
➜ main export GO111MODULE=off
➜ main go env GOPATH
/data/home/cooperswang/code_study/

代码结构如图:

这里重点main.go中调用其它packge的方式:

可以看到,这时采用相对路径的方式实现`自定义包`的查找,使用的查找顺序如上面的知识点,主要使用了GOPATH路径。
不过这里仍有点不明白,不清楚go查找包到底是怎么起作用的,先记录下吧
---
##### 方式2:使用Go mod管理多个package
Golang在1.11版本中引入了go mod机制,在统一的位置对依赖进行管理。
go mod不同于以往基于GOPATH和Vendor的构建方式,其主要是通过GOPATH/pkg/mod下的缓存包来对工程进行构建。在Go 1.11中已经可以使用,同以往新添加的功能一样,go mod 可以通过GO111MODULE来控制是否启用,GO111MODULE有一下三种类型。
on 所有的构建,都使用Module机制
off 所有的构建,都不使用Module机制,而是使用GOPATH和Vendor
auto 在GOPATH下的工程,不使用Module机制,不在GOPATH下的工程使用
Go mod化处理步骤
* 在项目的根目录下使用命令go mod init projectName
* 在该目录下执行go build main.go
[can-i-have-multiple-packages-inside-a-single-go-module-how](https://bbs.youkuaiyun.com/topics/618658159)
建立项目`HelloWorld`,在顶层目录使用`go mod init`生成`go.mod`文件。

此时go.mod文件:
module HelloWorld
go 1.13
此时hello包和main包内容:
➜ HelloWorld cat src/hello/hello.go
package hello
import “fmt”
func Hello() {
fmt.Println(“hello wsq”)
}
➜ HelloWorld cat src/main/main.go
package main
import “HelloWorld/src/hello”
func main() {
hello.Hello()
}



**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[如果你需要这些资料,可以戳这里获取](https://bbs.youkuaiyun.com/topics/618658159)**
识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[如果你需要这些资料,可以戳这里获取](https://bbs.youkuaiyun.com/topics/618658159)**