Saki's 研究记录

Golang 1.18 工作区模式(workspace mode)
环境 OS: Darwin Kernel Version 21.4.0GO: go version go1.18 darwin/arm64 背景Go1.18 最 “实用“ 的功能,应该是 Go 工作区模式,它使得开发者在多个模块中的开发工作变得更加简单。 使用在同一个目录下创建两个空的 go 包 demo 和 util。 1mkdir -p workspace_mode_example/{demo,util} 然后分别使用 go mod init 来初始化。 1234cd workspace_mode_example/demogo mod init workspa...
Golang 1.18 报错:linkname must refer to declared function or variable
问题最近在mac上升级golang到1.18版本,新建gin服务执行go run时报错: 123456789101112# golang.org/x/sys/unix../../../../go/pkg/mod/golang.org/x/sys@v0.0.0-20200116001909-b77594299b42/unix/syscall_darwin.1_13.go:25:3: //go:linkname must refer to declared function or variable../../../../go/pkg/mod/golang.org/x/sys@v0.0.0-2...
golang embed 使用
简介特性//go:embed,它的作用就是可以在Go语言应用程序中包含任何文件、目录的内容,也就是说我们可以把文件以及目录中的内容都打包到生成的Go语言应用程序中了,部署的时候,直接扔一个二进制文件就可以了,不用再包含一些静态文件了,因为它们已经被打包到生成的应用程序中了。 样例目录结构创建目录: 1mkdir -p embed_example/{static,templates} 目录结构: 123456789101112cd embed_example; tree.├── go.mod├── go.sum├── hello.txt├── main.go├── st...
golang parse df -h output hard way
背景最近有个场景,需要解析远程调用命令df -h,输出的格式类似CentOS下的输出: 123456789# df -hFilesystem Size Used Avail Use% Mounted on/dev/vda1 99G 5.5G 89G 6% /devtmpfs 3.8G 0 3.8G 0% /devtmpfs 3.8G 24K 3.8G 1% /dev/shmtmpfs 3.8G 274M 3.6G 8% /runtmpfs 3.8G...
Golang 交叉编译报错 XX is invalid in C99
环境 macOS: 11.6.1 (Big Sur)gcc version: apple clang version 13.0.0 (clang-1300.0.29.3)Ubuntu: 16.04.6 LTSCentOS: Linux release 8.4.2105 (Core) 背景最近在使用redis-full-check来对比两个redis的数据是否一致,在macos上进行开发,编译后再上传到ubuntu系统的服务器上运行。 问题这就导致我需要使用到golang的交叉编译,golang默认支持交叉编译,只在编译时配置对应平台的编译参数即可: 123456# linuxCGO_E...
yum install/update golang
InstallInstall EPEL package by using yum install epel-release command: 1yum install -y epel-release Update your system: 1yum update Install Golang using yum: 1yum install -y golang Check Golang version: 12go versiongo version go1.15.14 linux/amd64 UpdateUnless someone either adds Go 1.7+ to a...