windows 下打包 linux 的运行程序。
设置变量
set GOARCH=amd64
set GOOS=linux
go build
取消变量
set GOARCH=
set GOOS=
显示变量
set GO
当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 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
,否则会导致无法编译
go mod init sts
import "sts/log"
-> 此处为主目录下的mod名下边的log文件夹go mod tidy
└─studyModule //项目主目录
└─4fan.top //主目录下文件夹
│ └─DY
│ ├─[email protected]
│ ├─ *.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/[email protected]
main.go中: import "4fan.top/DY/DYlogger"
说明:go mod是一个理想化的包管理工具,因此版本在go mod中很重要。(semver(语义化版本号))
go.mod 【1】
中的require最好指明版本 对于文件名名字以及mod文件中的版本号码,未测试在其它情况下是否生效,请自行测试。