Go的基础运行方式和打包

news2024/11/17 5:35:02

目录

  • 基础运行方式
    • 导入路径
  • 打包
  • 技巧
  • 相关知识点

基础运行方式

// 文件名可以不是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 <>

导入路径

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

在这里插入图片描述

打包

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

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

技巧

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 文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/934954.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

最新外卖霸王餐小程序、H5、微信公众号版外卖系统源码|霸王餐美团/饿了么系统/外卖红包cps粉丝裂变玩法源码下载

最新外卖霸王餐小程序、H5、微信公众号版外卖系统源码、霸王餐美团、饿了么系统&#xff0c;粉丝裂变玩源码下载&#xff0c;外卖cps小程序项目&#xff0c;外卖红包cps带好友返利佣金分销系统程序、饿了么美团联盟源码&#xff0c;外卖cps带分销返利后端源码&#xff0c;基于L…

【Linux操作系统】线程的基本知识和创建--循环创建多个子线程

本篇文章主要介绍了线程的概念和作用&#xff0c;线程三级映射的实现&#xff0c;创建线程的方法&#xff08;讲解pthread_self和pthread_create函数&#xff09;&#xff0c;循环创建多个子线程为例子&#xff0c;同时分析线程之间的全局变量的共享问题&#xff0c;希望可以帮…

fastjson-1.2.24-rce(CVE-2017-18349)fastjson-1.2.47-rce(CNVD-2019-22238)

一.fastjson 1.2.24 反序列化导致任意命令执行漏洞(CVE-2017-18349) fastjson在解析json的过程中&#xff0c;支持使用autoType来实例化某一个具体的类&#xff0c;并调用该类的set/get方法来访问属性。通过查找代码中相关的方法&#xff0c;即可构造出一些恶意利用链 影响范围…

LeetCode 刷题第四轮 Offer I + 类型题

目录 剑指 Offer 04. 二维数组中的查找 剑指 Offer 29. 顺时针打印矩阵 剑指 Offer 09. 用两个栈实现队列 剑指 Offer 30. 包含min函数的栈 剑指 Offer 10- I. 斐波那契数列 [类型&#xff1a;记忆优化 递归 / 动态规划] 剑指 Offer 10- II. 青蛙跳台阶问题 [类型&am…

AcWing算法提高课-5.5.2最大公约数

宣传一下 算法提高课整理 CSDN个人主页&#xff1a;更好的阅读体验 原题链接 题目描述 给定整数 N N N&#xff0c;求 1 ≤ x , y ≤ N 1 \le x,y \le N 1≤x,y≤N 且 gcd ⁡ ( x , y ) \gcd(x,y) gcd(x,y) 为素数的数对 ( x , y ) (x,y) (x,y) 有多少对。 输入格式 输…

pandas由入门到精通-数据清洗-缺失值处理

pandas-02-数据清洗&预处理 A.缺失值处理1. Pandas缺失值判断2. 缺失值过滤2.1 Series.dropna()2.2 DataFrame.dropna()3. 缺失值填充3.1 值填充3.2 向前/向后填充文中用S代指Series,用Df代指DataFrame 数据清洗是处理大型复杂情况数据必不可少的步骤,这里总结一些数据清…

数字基带传输系统

文章目录 前言一、数字基带系统基本组成二、基本码型1、数字基带信号2、6 种基本码型 三、数字基带信号的频谱特性四、数字基带信号选码1、原则2、常用的传输码型①、AMI 码&#xff08;传号交替反转码&#xff09;②、 H D B 3 HDB_3 HDB3​ 码&#xff08;3 阶高密度双极性码…

GeoHash之存储篇

前言&#xff1a; 在上一篇文章GeoHash——滴滴打车如何找出方圆一千米内的乘客主要介绍了GeoHash的应用是如何的&#xff0c;本篇文章我想要带大家探索一下使用什么样的数据结构去存储这些Base32编码的经纬度能够节省内存并且提高查询的效率。 前缀树、跳表介绍&#xff1a; …

京东话费直充系统——轻松充值移动、联通、电信三大运营商的通话套餐

京东三网话费直充系统/移动联通电信话费三网直充/三网话费直充系统 系统特性: ①、移动&#xff0c;联通&#xff0c;电信话费使用微信H5/支付宝H5 ②、移动话费/联通话费/电信话费额度支持1-任意额度&#xff08;不得超过官网所支持的额度&#xff09; ③、系统实测每分钟…

pandas由入门到精通-数据透视表

采集的数据存储后通常会分为多个文件或数据库,如何将这些文件按需拼接,或按键进行连接十分重要。这节将介绍数据索引的复杂操作如分层索引,stack,unstack,seet_index,reset_index等帮助重构数据,数据的拼接如merge,join,concat,combine_first等帮助连接数据,以及数据透视表…

全球首家?梅赛德斯-奔驰将在成都启动超级充电站,功率高达480kW

根据官方宣布的消息&#xff0c;梅赛德斯-奔驰将在中国启动充电功率高达480kW的首批超级充电站建设项目。这些超级充电站将成为全球首家梅赛德斯-奔驰品牌的充电站&#xff0c;并计划于今年10月在成都投入使用。 除了成都&#xff0c;这些充电站还将陆续在包括北京、深圳等其他…

AI 绘画Stable Diffusion 研究(十七)SD lora 详解(上)

大家好&#xff0c;我是风雨无阻。 本期内容&#xff1a; Lora的原理是什么&#xff1f;Lora如何下载安装&#xff1f;Lora如何使用&#xff1f; 大家还记得 AI 绘画Stable Diffusion 研究&#xff08;三&#xff09;sd模型种类介绍及安装使用详解 这篇文章中&#xff0c;曾简…

2022年12月 C/C++(四级)真题解析#中国电子学会#全国青少年软件编程等级考试

第1题:开餐馆 北大信息学院的同学小明毕业之后打算创业开餐馆.现在共有n 个地点可供选择。小明打算从中选择合适的位置开设一些餐馆。这 n 个地点排列在同一条直线上。我们用一个整数序列m1, m2, … mn 来表示他们的相对位置。由于地段关系,开餐馆的利润会有所不同。我们用pi …

DELL Power Edge R740 安装 OracleLinux-R7-U9-Server

一、准备好 OracleLinux-R7-U9-Server-x86_64-dvd 安装介子&#xff1a; 二、通过 iDRAC挂dvd 安装介子 三、在 iDRAC 开机控制选择虚拟 CD/DCD/ISO 电源控制选择 复位系统&#xff08;热启动&#xff09; 四、进入安装阶段 五、配置时区 六、配置磁盘 七、删除之前的旧分区 …

力与美的交响丨远航Y6全国媒体试驾会成都举办,实力演绎中式豪华+极致性能

8月24日&#xff0c;四川成都&#xff0c;远航Y6全国媒体试驾会圆满举办。来自全国的近百家媒体亲身试乘试驾&#xff0c;深度感受远航Y6诠释的高端豪华新体验。 绵绵细雨难掩相聚的热情。远航汽车自去年成都车展正式发布亮相&#xff0c;就与成都结下了不解之缘。历经一年的持…

Nginx全局配置

一、修改启动进程数 worker_processes 1; #允许的启动工作进程数数量&#xff0c;和你真实的cpu数量有关 1 worker_processes auto; #如果设置为auto 就是你真实的cpu数量 ps axo pid,cmd,psr,ni|grep nginx #可以看到 nginx的 worker数量 二、日制分割 [rootyuji ~]#…

C语言小练习(五)

&#x1f31e; 忘掉那些“不可能”的借口吧&#xff0c;去坚持一个“可能”的理由&#xff0c;请给时间一点时间&#xff0c;让开始开始&#xff0c;只要肯努力&#xff0c;总会成功的&#xff01; Day05 &#x1f4dd; 选择题 &#x1f4dd; 选择题 &#x1f388;1、如下程序…

IA-YOLO项目中DIP模块的初级解读

IA-YOLO项目源自论文Image-Adaptive YOLO for Object Detection in Adverse Weather Conditions&#xff0c;其提出端到端方式联合学习CNN-PP和YOLOv3&#xff0c;这确保了CNN-PP可以学习适当的DIP&#xff0c;以弱监督的方式增强图像检测。IA-YOLO方法可以自适应地处理正常和不…

构建数据可视化(基于Echarts,python)

构建数据可视化&#xff08;基于Echarts,python) 本文目录&#xff1a; 一、写在前面的题外话 二、数据可视化概念 三、用Python matplotlib库绘制数据可视化图 四、基于Echarts构建大数据可视化 4.1、安装echarts.js 4.2、数据可视化折线图制作 4.2.1、基础折线图 4.2…

安全开发-JS应用NodeJS指南原型链污染Express框架功能实现审计WebPack打包器第三方库JQuery安装使用安全检测

文章内容 环境搭建-NodeJS-解析安装&库安装安全问题-NodeJS-注入&RCE&原型链案例分析-NodeJS-CTF题目&源码审计打包器-WebPack-使用&安全第三方库-JQuery-使用&安全 环境搭建-NodeJS-解析安装&库安装 Node.js是运行在服务端的JavaScript 文档参考…