当前位置: 首页 > article >正文

Golang 基础 环境配置和包管理

Golang 基础环境和语法

交叉编译

windows 下打包 linux 的运行程序。

设置变量

set GOARCH=amd64
set GOOS=linux

go build

取消变量

set GOARCH=
set GOOS=

显示变量

set GO

go test

当go test以包列表模式运行时,go test会缓存成功的包的测试结果以避免不必要的重复测试。当然,有时候我们测试的时候并不喜欢有缓存,我们可以手动禁用缓存。可以通过下列方式禁用缓存:

带上 -count=1 参数禁用缓存。

如,执行下面命令测试,便会禁用缓存测试结果

go test -v -count=1 filename_test.go

手动清除测试缓存
除了在执行测试命令的时候加上禁用缓存参数,我们还可以执行下面的命令手动清除缓存,需要注 意的是,每次都得清除,不然下次执行的还是上次的结果。

go clean -testcache

VsCode setting.xml 配置

{
    "go.testFlags": ["-v","-count=1"],
}

映射

使用make声明映射

创建一个映射,键的类型是string,值的类型是int

dict := make(map[string]int)

创建一个映射,键和值的类型都是string,使用两个键值对初始化映射

dict := map[string]string{"Red":"#da1337","Orange":"#e95a22"}

声明一个存储字符串切片的映射,使用字符串切面作为值

dict := map[int][]string{}

类型的本质

内置类型

  • 数值类型
  • 字符串类型
  • 布尔类型

引用类型

  • 切片
  • 映射
  • 通道
  • 接口
  • 函数类型

Go 语言里的引用类型有如下几个:切片、映射、通道、接口和函数类型。当声明上述类型
的变量时,创建的变量被称作标头(header)值。从技术细节上说,字符串也是一种引用类型。
每个引用类型创建的标头值是包含一个指向底层数据结构的指针。每个引用类型还包含一组独特
的字段,用于管理底层数据结构。因为标头值是为复制而设计的,所以永远不需要共享一个引用
类型的值。标头值里包含一个指针,因此通过复制来传递一个引用类型的值的副本,本质上就是
在共享底层数据结构。

结构类型

结构类型可以用来描述一组数据值,这组值的本质即可以是原始的,也可以是非原始的。如
果决定在某些东西需要删除或者添加某个结构类型的值时该结构类型的值不应该被更改,那么需
要遵守之前提到的内置类型和引用类型的规范。

包管理

  • Go Mod
  • Go Vendor
  • Go dep
  • Go Modules

Go Modules 使用本地包

Go Modules下使用本地包 https://www.cnblogs.com/dexte/p/12337220.html

方式一(推荐)

严格的说,方式一是使用项目目录下的go文件。
项目目录如下:

【如下所示, 搜文件树模式编写表示】

└─ studyModule //项目主目录
  ├─ log //主目录下文件夹
  │  └─ log.go // log目录下go文件
  ├─ main.go // 主目录下go文件
  └─ go.mod

log.go 中首行 package log,注意,log文件夹下不要 go mod init,否则会导致无法编译

  1. studyModule文件夹下 go mod init sts
  2. main.go 中调用 log.go中的方法:import "sts/log"-> 此处为主目录下的mod名下边的log文件夹
  3. log目录下的方法,变量等依然需要大写。如果不能正常使用可尝试在主目录下执行 go mod tidy

方式二(使用go mod replace)

└─studyModule //项目主目录
  └─4fan.top //主目录下文件夹
  │  └─DY
  │     ├─DYlogger@v1.1.0
  │     ├─ *.go
  │     └─go.mod【2】
  ├─main.go // 主目录下go文件
  └─go.mod【1】
  • go.mod【2】:Module Name:DYlogger
  • go.mod 【1】:
require 4fan.top/DY/DYlogger v1.1.0
replace 4fan.top/DY/DYlogger => ./4fan.top/DY/DYlogger@v1.1.0

main.go中: import "4fan.top/DY/DYlogger"

说明:go mod是一个理想化的包管理工具,因此版本在go mod中很重要。(semver(语义化版本号))

go.mod 【1】中的require最好指明版本 对于文件名名字以及mod文件中的版本号码,未测试在其它情况下是否生效,请自行测试。


http://www.kler.cn/a/231221.html

相关文章:

  • react中useEffect的使用
  • 6.二分算法
  • 反射、枚举以及lambda表达式
  • 汽车蓝牙钥匙定位仿真小程序
  • 《深入浅出HTTPS​​​​​​​​​​​​​​​​​》读书笔记(31):HTTPS和TLS/SSL
  • 论文阅读:Realistic Noise Synthesis with Diffusion Models
  • Golang 并发 生产者消费者模式
  • 《MySQL 简易速速上手小册》第2章:数据库设计最佳实践(2024 最新版)
  • uniapp 开发App 权限授权 js-sdk
  • win10系统连接WiFi,输入正确密码,但还是提示错误
  • FPS游戏框架漫谈第二十二天
  • 【Eclipse插件开发】3工作台workbench探索【下篇】
  • ftp安装脚本文档
  • 【Git】08 多人单分支协作场景
  • 解决ssh:connect to host github.com port 22: Connection timed out与kex_exchange_identification
  • Docker- chapter 1
  • Swin-UMamba:结合基于ImageNet的预训练和基于Mamba的UNet模型
  • chisel之scala 语法
  • Qt 项目树工程,拷贝子项目dll到子项目exe运行路径
  • ROS2 CMakeLists.txt 和 package.xml
  • springboot163美食推荐商城的设计与实现
  • Android 系统启动流程
  • GetBilibiliVideo:一个下载B站视频的开源神器,让你轻松管理你的二次元世界。
  • 单片机接收PC发出的数据
  • 计算机网络概念、组成、功能和分类
  • H2和流行关系型数据库对比