go语言中的包

初始化项目

go mod init goStudy

然后项目中会出现一个go.mod文件,文件内容如下:

module goStudy
go 1.26.5

创建calc包,并且使用包中的方法

与 go.mod文件在同一目录下,文件夹名与包名一致,创建calc/calc.go文件
文件内容如下:

package calc // 这个包名和文件夹名一致
func Add(a, b int) int {
	return a + b
}
func Sub(a, b int) int {
	return a - b
}

image

使用calc包中的方法

package main

import (
	"fmt"
	"goStudy/calc" // 引入calc包
)

func main() {
	fmt.Println(calc.Add(1, 2))
	fmt.Println(calc.Sub(1, 2))
}

image

输出结果:
3
-1

包中大写的变量是公有变量,小写的变量是私有变量

包中大写的变量(方法)是公有变量(方法),小写的变量(方法)是私有变量(方法),,
公有变量可以被其他包使用,私有变量只能被当前包使用(不能够导出,不能够被其他包使用)

calc\calc.go文件内容如下:

package calc      // 这个包名和文件夹名一致;包一定要放置在最上面
var Name = "calc" // 公有变量
var age = 10      // 私有变量
// 公有方法 可以被其他包使用
func Add(a, b int) int {
	return a + b
}
// 公有方法, 可以被其他包使用
func Sub(a, b int) int {
	return a - b
}

day01.go文件内容如下:

package main

import (
	"fmt"
	"goStudy/calc"
)

func main() {
	fmt.Println(calc.Name) // 公有变量可以被其他包使用
	// fmt.Println(calc.age) // 报错,私有变量不能被其他包使用
}

会报错的哈,因为私有变量不能被其他包使用

可以创建多个包

与 go.mod 文件同级,可以创建多个包,如下
fn/fn.go // 这个包名和文件夹名一致;包一定要放置在最上面
del/del.go // 这个包名和文件夹名一致;包一定要放置在最上面

Golang中自定义包

包(package)是多个Go源码的集合,
一个包可以简单理解为一个存放多个.go文件的文件夹。
该文件夹下面的所有go文件都要在代码的第一行添加如下代码(如下所示),声明该文件归属的包。

package 包名

注意事项:
1,一个文件夹下面直接包含的文件只能归属一个package,同样一个package的文件不能在多个文件夹下。
2,包名可以不和文件夹的名字一样,包名不能包含-符号。
3,包名为main的包为应用程序的入口包,这种包编译后会得到一个可执行文件,
而编译不包含main包的源代码则不会得到可执行文件。

包的引入: 单行引入和多行引入

包可以单行引入:

import  “包1”
import  “包2”

多行引入

import (
	"fmt"
	"goStudy/calc"
)

给包设置别名

import (别名 "包的路径")

import (
	"fmt"
	T "goStudy/calc"
)
posted @ 2026-09-30 21:44  何人陪我共长生  阅读(10)  评论(0)    收藏  举报