环境
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...
问题最近在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...
简介特性//go:embed,它的作用就是可以在Go语言应用程序中包含任何文件、目录的内容,也就是说我们可以把文件以及目录中的内容都打包到生成的Go语言应用程序中了,部署的时候,直接扔一个二进制文件就可以了,不用再包含一些静态文件了,因为它们已经被打包到生成的应用程序中了。
样例目录结构创建目录:
1mkdir -p embed_example/{static,templates}
目录结构:
123456789101112cd embed_example; tree.├── go.mod├── go.sum├── hello.txt├── main.go├── st...
背景最近有个场景,需要解析远程调用命令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...
环境
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...
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...