文章目录
提示:以下是本篇文章正文内容,下面案例可供参考
一、包的引用
- 包的本质实际上就是创建不同的文件夹,来存放程序文件
- 画图说明一下包的原理
1.1、包的基本概念
- 说明:go 的每一个文件都是属于一个包的,也就是说 go 是以包的形式来管理文件和项目目录结构的
1.2、包的三大作用
区分相同名字的函数、变量等标识符
当程序文件很多时,可以很好的管理项目
控制函数、变量等访问范围,即作用域
1.3、包的相关说明
打包基本语法
package 包名
引入包的基本语法
import “包的路径”
二、包的引用
注意你的go.mod中的module 后面的名字,因为引用包都是以这个为开始
被引用的包的函数(方法)必须要第一个字母大写开头
1、package 指令在 文件第一行,然后是 import 指令。
2、在 import 包时,路径从 $GOPATH 的 src 下开始,不用带 src , 编译器会自动从 src 下开始引入
3、 为了让其它包的文件,可以访问到本包的函数,则该函数名的首字母需要大写,类似其它语言
的 public ,这样才能跨包访问。
2.1、go.mod
- 当我们建立一个go的项目时就会生成一个go.mod的文件
2.1.1、golang-idea建立go项目
我的第一个项目叫one然后生成的go.mode如下
导入包就要以 one/xxx 为开始,以后更改了go.mod中的module 后面的名称,import后面的也要更改
2.2、案例
项目名 one,在项目中新建两个目录main,和one,分别在里面新建main.go,和one.go
** one/one.go**
package one
import "fmt"
func Funone() { // 方法名要大写开头
fmt.Println("11111111111111")
}
main/main.go
package main
import "one/one" // 根据go.mod内的module中的值来导入
func main() {
one.Funone() // 调用one.Funone的方法
}
2.3、案例二
- 新建一个项目CODES ,go.mod修改如下
- 在项目的/src/go_codes/Basics/testthree/目录下新建 main 、one、 two目录
- main目录新建main.go, one目录新建 one.go, onetest.go, two目录新建 two.go
- 项目目录如下:
one/one.go
package one
import "fmt"
func FuncOne() {
fmt.Println("11111111111")
}
one/onetest.go
package one
func FuncOneTest() int {
return 1
}
two/two.go
package two
func FuncTwo() {
println("222222222222")
}
- 可以注意下 onetest.go 和one.go都属于one这个package
main/main.go
package main
import (
"fmt"
// "github.com/Spyder-man-0814/gowork/src/go_codes/Basics/testthree/one"
"go_module/src/go_codes/Basics/testthree/one"
"go_module/src/go_codes/Basics/testthree/two"
)
func main() {
fmt.Println("1111")
one.FuncOne() //调用one/one.go 中的FuncOne方法
n := one.FuncOneTest() //调用one/onetest.go 中的FuncOneTest方法 ,FuncOneTest这个方法属于onetest.go 我们只需要找到对应的包one即可调用
fmt.Println(n)
two.FuncTwo() //调用two/two.go 中的FuncTwo方法
}
2.4、调用只需要到具体的package即可不用到package下的目录
- go和python、java不同调用只需要到package即可