Golang 教程3——包

Golang 教程3——包

注意,该文档只适合有编程基础的同学,这里的go教程只给出有区别的知识点

文件结构
在这里插入图片描述

前置工作

在文件testproject01目录下执行 ‘go mod init gocode/testproject01’

(base) PS E:\Goproject\src\gocode\testproject01> go mod init gocode/testproject01
go: creating new go.mod: module gocode/testproject01
go: to add module requirements and sums:
        go mod tidy
1、 如何导入其他包的函数(我们不可能把所有的函数都放在同一个包中,可以分门别类的把函数放在不同的源文件中)
1.1 main文件下
package main //1、 包的声明, 建议:包的声明建议和这个包所在的文件夹同名
//2、main包是程序的入口包, 一般main函数会放在这个包下

//3、 包名是从$GOPATH/src/开始算起,使用/进行分割
import	(
	//step1: 导包, 导入的是所在的文件夹的路径
	"gocode/testproject01/db"
)

func main (){
	//2、调用
	db.ConnectDB()
}
1.2 dbutil文件下
package db

import "fmt"

// 连接数据库的函数, 注意: 如果该函数想被其他包访问到,则函数名首字母得大写	
func ConnectDB() {
    fmt.Println("success to connect db")
}

1.3 执行结果

(base) PS E:\Goproject\src\gocode\testproject01> go run ./main/main.go
success to connect db
2、 包的名字与文件夹的名字可以不同

文件结构

在这里插入图片描述

2.1 mian文件
package main //1、 包的声明, 建议:包的声明建议和这个包所在的文件夹同名
//2、main包是程序的入口包, 一般main函数会放在这个包下

//3、 包名是从$GOPATH/src/开始算起,使用/进行分割
import	(
	//step1: 导包
	"gocode/testproject01/db"
)

func main (){
	//2、调用, 此时aaa为所声明的包的名字
	aaa.ConnectDB()
}
2.2 db文件
package aaa //文件声明的报名

import "fmt"

// 连接数据库的函数
func ConnectDB() {
    fmt.Println("success to connect db")
}

2.3 执行结果

(base) PS E:\Goproject\src\gocode\testproject01> go run ./main/main.go
success to connect db
3、 一个目录下的同级文件归属于同一个包

文件结构

在这里插入图片描述

3.1 mian文件夹下的main文件
package main //1、 包的声明, 建议:包的声明建议和这个包所在的文件夹同名
//2、main包是程序的入口包, 一般main函数会放在这个包下

//3、 包名是从$GOPATH/src/开始算起,使用/进行分割
import	(
	//step1: 导包
	"gocode/testproject01/db"
)

func main (){
	//2、调用
	aaa.ConnectDB()
	bbb.ConnectDB2()
}

3.2 db文件夹下的util文件
package bbb //包名1 

import "fmt"

// 连接数据库的函数
func ConnectDB2() {
    fmt.Println("success to connect db")
}
3.3 db文件夹下的dbutil文件
package aaa //包名2

import "fmt"

// 连接数据库的函数
func ConnectDB() {
    fmt.Println("success to connect db")
}
3.4 结果展示
(base) PS E:\Goproject\src\gocode\testproject01> go run ./main/main.go //aaa、 bbb在属于同一个包下同一级文件,又包名不同,所以会报错
main\main.go:7:2: found packages aaa (dbutil.go) and bbb (util.go) in E:\Goproject\src\gocode\testproject01\db
3.5 若是同包名的情况(此处改bbb为aaa)
a. util文件
package aaa

import "fmt"

// 连接数据库的函数
func ConnectDB2() {
    fmt.Println("success to connect db")
}
b. main文件
package main //1、 包的声明, 建议:包的声明建议和这个包所在的文件夹同名
//2、main包是程序的入口包, 一般main函数会放在这个包下

//3、 包名是从$GOPATH/src/开始算起,使用/进行分割
import	(
	//step1: 导包
	"gocode/testproject01/db"
)

func main (){
	//2、调用
	aaa.ConnectDB()
	aaa.ConnectDB2()
}
3.6 结果展示
(base) PS E:\Goproject\src\gocode\testproject01> go run ./main/main.go
success to connect db
success to connect db
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值