乱流的时空

导航

统计

Go语言概述

一、Go语言概述

Go语言是一个比较年轻的语言,是Google的Robert Griesemer、Rob Pike及Ken Thompson开发的,它是一种静态强类型、编译型、并发型的编程语言,并具有垃圾回收功能。

1.Go语言的特性

1.优雅的语法:语法类似于C语言,同时又融合了其他编程语言的优点。

2.原生地支持并发:Go语言使用了类协程的方式来处理并发单元,在运行层面做了更深的优化处理,实现并发非常简单,只需要使用关键字go即可,不像其他编程语言需要借助第三方库,比如Python需要借助threading、multiprocess等。

3.静态链接:编写完Go项目程序后,只需编译成目标操作系统的可执行文件,即可在对应的平台上执行,无须依赖任何运行库。

4.丰富的生态圈:有丰富的标准库和活跃的社区,也有着丰富的命令行工具,编译、运行、测试、代码结构化等操作都可以使用命令行工具来完成。市面上有着很多包管理工具,如Govendor、Glide和Dep等。在Go1.11版本开始支持Go moudle来进行项目程序的包管理。使用Go开发的产品,如Docker、nsq、etcd等当下比较热门的项目。

2.开发环境搭建

最新版本Go1.18已在2022年3月15日正式发布,因此以最新版本为例,介绍Go语言的安装与配置,与绝大多数软件的下载一致,选择与目标操作系统匹配的安装包、二进制文件和源代码安装即可。

2.1设置环境变量,和Go相关的几个环境变量为:

GOPATH:项目程序目录
GOROOT:Go源代码的安装目录
GOBIN:Go程序经编译后生成的可执行文件的存放目录

2.2Linux操作系统设置方法

tar -C /usr/local -xzf go1.18.linux-amd64.tar.gz
#环境变量设置为:
export GOROOT=/usr/local/go
export GOPATH=/Users/go
export GOBIN=$GOPATTH/bin
export PATH=$PATH:/usr/local/go/bin
#查看Go相关环境变量
go env
#查看Go版本
go version

2.3windows系统设置方法

gopath是一个环境变量,工作路径,用于存放所写的代码。最好只设置一个,所有的代码都放到GOPATH的src目录下。
1. 右击电脑,查看属性,打开系统高级配置,设置环境变量,变量名:GOPATH,变量值:E:\Go\GO_code
2. 在E:\Go\GO_code此目录下新建三个目录:src、pkg、bin
3. 将%USERPROFILE%\go\bin默认路径更改为E:\Go\GO_code\bin
在cmd里go env可以查看go的环境变量设置

2.4配置proxy

由于国内访问GitHub会造成timeout,所以我们需要配置一个PROXY(推荐使用https://goproxy.iohttps://goproxy.cn

go env -w GOPROXY=https://goproxy.cn

3.命令行及编译

3.1需要GOPATH支持的方式

Go的工作目录结构有bin、pkg、src三个(在GOPATH目录下)

bin:编译后的可执行程序的存储目录
pkg:编译时生成的对象文件
src:库文件

3.2不需要GOPATH支持的方式

Go版本1.11以上支持设置GOROOT化境变量,在任意目录下创建项目程序即可,内置的命令行工具常用的命令有:

go build:将程序编译成可执行文件
go run:将程序先编译成可执行文件,再运行程序
go fmt:格式化代码,比如换行、缩进等
go test:运行测试的命令
go get:下载第三方库的常用命令
go version:查看当前操作系统中安装的Go语言系统版本信息
go env:查看当前操作系统和Go语言相关的环境变量的值

4.跨平台编译

默认我们go build的可执行文件都是当前操作系统可执行的文件,Go语言支持跨平台编译——在当前平台(例如Windows)下编译其他平台(例如Linux)的可执行文件。

4.1.Windows编译Linux可执行文件

如果你的Windows使用的是cmd,那么按如下方式指定环境变量。
SET CGO_ENABLED=0  GOOS=linux GOARCH=amd64  // 禁用CGOSET,目标平台是linuxSET,目标处理器架构是amd64
如果你的Windows使用的是PowerShell终端,那么设置环境变量的语法为
$ENV:CGO_ENABLED=0$ENV:GOOS="linux"
$ENV:GOARCH="amd64"
在你的Windows终端下执行完上述命令后,再执行下面的命令,得到的就是能够在Linux平台运行的可执行文件了。
go build

4.2.Windows编译Mac可执行文件

Windows下编译Mac平台64位可执行程序:
cmd终端下执行:
SET CGO_ENABLED=0SET GOOS=darwinSET GOARCH=amd64go build
PowerShell终端下执行:
$ENV:CGO_ENABLED=0$ENV:GOOS="darwin"
$ENV:GOARCH="amd64"
go build

4.3.Mac编译Linux可执行文件

Mac电脑编译得到Linux平台64位可执行程序:
CGO_ENABLED=0
GOOS=linux
GOARCH=amd64
go build

4.4.Mac编译Windows可执行文件

Mac电脑编译得到Windows平台64位可执行程序:
CGO_ENABLED=0
GOOS=windows
GOARCH=amd64
go build

4.5.Linux编译Mac可执行文件

Linux平台下编译Mac平台64位可执行程序:
CGO_ENABLED=0
GOOS=darwin
GOARCH=amd64
go build

4.6.Linux编译Windows可执行文件

Linux平台下编译Windows平台64位可执行程序:
CGO_ENABLED=0
GOOS=windows
GOARCH=amd64
go build
 

posted on   乱流的时空  阅读(217)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示