当前位置:网站首页>Go-10-模块与包
Go-10-模块与包
2022-08-09 01:26:00 【hahyyy】
Package
一般来说,一个文件夹可以作为package,同一个package内部变量、类型、方法等定义可以相互看到
go语言也有public和private的概念,粒度是包
如果类型/接口/方法/函数/字段的首字母大写,则是public的,对其他package可见
如果首字母小写,则是private的,对其他package不可见
比如我们新建⼀个文件 calc.go , main.go 平级,分别定义 add 和 main 方法
// calc.go
package main
func add(num1 int, num2 int) int {
return num1 + num2
}
// main.go
package main
import "fmt"
func main() {
fmt.Println(add(3, 5)) // 8
}
运行go run main.go,会报错,说add未定义
因为运行go run main.go只会编译main.go一个文件
需要将命令修改为go run main.go calc.go
Modules
Go Modules是Go 1.11版本之后引入的,Go 1.11之前使用$GOPATH机制
Go Modules可以算作是较为完善的包管理工具
同时支持代理,国内也能享受高速的第三方包镜像服务
在一个空文件夹下,使用命令go mod init xxx(模块名),初始化一个Module
使用ls可看见,生成了一个go.mod文件,里面记录了当前模块的模块名以及所有依赖包的版本
边栏推荐
猜你喜欢
随机推荐
LeetCode精选200道--双指针篇
JSON basics, transfer JSON data, and introduce four mainstream frameworks, jackson, gson, fastjson, and json-lib!
椭圆曲线复习
入门数据库Days6
Sencha Touch页面跳转创建返回上一级按钮的设计思路
Edge 提供了标签分组功能
如何在EasyDSS中使用ffmpeg实现点播视频的拼接与合成?
momerymap mmap 存储映射I/O
【信号去噪】基于Sage-Husa自适应卡尔曼滤波器实现海浪磁场噪声抑制及海浪磁场噪声的产生附matlab代码
CondConv--动态卷积思想
【Fiddler】Fiddler实现mock测试(模拟接口数据)
seaborn 笔记: 绘制分类数据
如何准备一份简历
String compression
论文笔记:SAITS: SELF-ATTENTION-BASED IMPUTATION FOR TIMESERIES
DataNode重启
C语言-大端存储和小端存储
gstreamer 记录
4-6 Matplotlib库 饼图
远程控制项目遇到的bug