Go的基础运行方式和打包

基础运行方式

// 文件名可以不是main,但包名和入口函数比如是main
// main.go
package main
// 导入包的时候可以直接导入,也可以导入后指定包名,
import (
	"fmt"

	godemo "github.com/neggplant/go_demo"
)

func main() {
	godemo.PrintHello()
	fmt.Println("1")
}
// 初始化model名
go mod init <name>
// 整理mod引用,自动查找包是否在本地环境中有使用到
go mod tidy
// 运行文件,缺什么使用go get命令安装
go run main.go
go get <>

# 遇到问题
# 设置私有仓库: 告诉Go工具链不要通过代理访问您的私有库。您可以通过设置 GOPRIVATE 环境变量来实现。
go env -w GOPRIVATE=gitlab.****.com/go/*
# 设置代理
go env -w GOPROXY=https://goproxy.io,direct
# 清缓存
go clean -modcache

项目的本地缓存设置

从 Go 1.11 版本开始,Go 模块系统(Go Modules)成为官方推荐的依赖管理解决方案,它默认使用本地缓存来存储下载的依赖项。本地缓存的位置是在 $GOPATH/pkg/mod 目录下,但是你可以通过设置 GOMODCACHE 环境变量来更改模块缓存的位置。

如果你想更改默认的模块缓存位置,可以按照以下步骤操作:

打开终端。

设置 GOMODCACHE 环境变量指向你想要的新位置。例如,如果你想把模块缓存放在 $HOME/mygomodcache 目录下,可以在 Unix 系统上使用以下命令:

export GOMODCACHE=$HOME/mygomodcache
set GOMODCACHE=C:\MyGoModCache

导入路径

当路径名和包名不一样的的时候需要指定包名,一样时候不需要
在这里插入图片描述

在这里插入图片描述

打包

这步也没啥要说的,就是文件中指定包名,然后github打个tag固定下版本,Go的编译器会自动按照tag进行版本查找
注意!!!:一个路径下只能有一个包名,同理只能有一个main函数

// 如果需要定义多个可执行程序,应该为每个程序创建一个单独的包,
// 并在每个包中定义一个main函数。这些包通常会放在一个名为cmd的顶级目录下。
// 例如,可以有以下的目录结构:
myproject/
├── cmd/
│   ├── program1/
│   │   └── main.go
│   └── program2/
│       └── main.go
└── pkg/
    └── mypackage/
        └── mypackage.go

替换包路径

replace google.golang.org/grpc => ../

技巧

type intValue int
定义新的类型对于创建更具描述性的代码非常有用,因为它可以让你的代码更清楚地表达你的意图。例如,你可以定义一个 type Dollars int 来表示美元金额,而不是直接使用 int。

相关知识点

Go 语言的依赖包管理是通过 Go Modules 来实现的。Go Modules 是 Go 1.11 版本引入的一种依赖管理机制,它使得开发者能够精确地控制项目依赖的版本,同时也使得项目能够在 GOPATH 之外进行构建。

以下是 Go Modules 的基本原理:

模块的定义:每个 Go Module 都由一个根目录和一个 go.mod 文件组成。go.mod 文件定义了模块的名称、Go 的版本以及模块的所有依赖。

依赖的版本:每个依赖都有一个版本号。版本号遵循语义化版本控制规则,形如 vX.Y.Z。Go Modules 会记录每个依赖的精确版本,以确保构建的一致性。

依赖的下载:当你导入一个包时,Go 会自动下载这个包及其所有依赖,并将它们添加到 go.mod 文件。你也可以使用 go get 命令手动下载依赖。

依赖的存储:下载的依赖会被存储在本地的模块缓存中。默认的缓存位置是 $GOPATH/pkg/mod。

依赖的解析:当你构建或运行代码时,Go 会根据 go.mod 文件解析依赖。如果一个包在 go.mod 文件中有记录,Go 就会使用文件中指定的版本。如果一个包没有在 go.mod 文件中记录,Go 会下载最新的版本,并将其添加到 go.mod 文件。

版本的更新:你可以使用 go get -u 命令更新依赖的版本。这会将依赖更新到最新的版本,并更新 go.mod 文件。

依赖的移除:如果你不再使用一个依赖,你可以使用 go mod tidy 命令移除它。这个命令会移除所有未使用的依赖,并更新 go.mod 和 go.sum 文件。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值