Golang 安装与配置

一、Go 语言简介

1. 语言概述

Go 是一种静态强类型、编译型语言,语法与 C 相近。

2. 功能支持

  • 垃圾回收(GC)
  • 结构形态
  • CSP 风格并发计算

3. 语言特点

  • 大厂背书
  • 天生支持并发
  • 语法简单,容易上手
  • 内置 runtime,支持垃圾回收
  • 可直接编译成机器码,不依赖其他库
  • 丰富的标准库
  • 跨平台编译

4. 应用领域

  • 服务器编程
  • 云平台开发
  • 区块链
  • 分布式系统
  • 网络编程

5. 撰写风格

Go 有内置的 gofmt 工具,能够自动格式化代码(整理多余空白、变量名称对齐、将对齐空格转换为 tab 等)。

  • 每行程序结束不需要写分号(;)(C/C++ 行末需以分号结尾)
  • 大括号({)不能换行放置(C/C++ 支持换行放置)
  • if 判断式和 for 循环不需要以小括号包裹(C/C++ 的 if 和 for 语句需用小括号包裹)

6. 编译器

  • gc:官方编译器,初期由 C 写成,后用 Go 重写实现自举;支持跨平台编译,不支持 CGO,可将源代码编译为目标系统、架构的二进制文件
  • gccgo:使用标准 gcc 作为后端的 Go 编译器

二、安装与配置

1. 下载

官网地址:https://golang.google.cn/

2. 安装步骤

(1)Windows 安装

按提示步骤安装即可。

(2)Linux 安装

Go 代码支持跨平台编译,安装步骤如下:

  • 解压安装包并创建软链接
tar -xvf go1.19.1.linux-amd64.tar.gz  # 解压到当前目录,得到 go 文件夹
ln -s /usr/local/go1.19.1 /usr/local/go  # 假设解压到 /usr/local,创建软链接方便版本管理
  • 配置环境变量(编辑 /etc/profile)
[root@yingzai local]$ vim /etc/profile
# 在文件中添加以下内容
GO_HOME=/usr/local/go
export PATH=$PATH:$GO_HOME/bin
# 使生效
[root@yingzai local]$ source /etc/profile

3. 安装验证

go version

4. 环境变量配置

(1)模块管理与代理设置

# 启用 go mod 管理库并设置代理
go env -w GO111MODULE=on 
go env -w GOPROXY=https://goproxy.cn,https://goproxy.io,direct

(2)GOROOT 与 GOPATH

  • GOROOT:Go 的安装目录
  • GOPATH:Go 依赖库的存放路径

5. 跨平台交叉编译

交叉编译不支持 CGO,需禁用 CGO,主要通过设置环境变量指定目标平台:

  • 环境变量说明

    • CGO_ENABLED:是否启用 CGO,交叉编译需设为 0
    • GOOS:目标平台操作系统(如 darwin、freebsd、linux、windows)
    • GOARCH:目标平台体系架构(如 386、amd64、arm)
  • 编译命令示例

    # Windows 上编译 Linux 可执行文件
    set CGO_ENABLED=0
    set GOOS=linux
    set GOARCH=amd64
    go build  # 生成 Linux 平台的二进制文件
    
    # Linux 下编译 Windows 可执行文件
    export CGO_ENABLED=0
    export GOOS=windows
    export GOARCH=amd64
    go build  # 生成 Windows 平台的 .exe 文件
    

    (注:Windows 用 set 命令,Linux 用 export 命令设置环境变量)

三、开发工具

常用开发工具为 GoLand 和 VS Code,均支持 AI 编程助手;不建议使用 VIM 等工具,效率较低。

1. GoLand

  • 优势:功能完善,智能提示精准,是体验最好的 Go 开发工具。

2. VS Code

  • 不足:智能提示不够全面,第三方智能提示存在严重延迟,影响开发效率。

四、项目编写方法

1. 代码组织方式

Go 使用包(package)和模块(module)组织代码:

  • 包:对应文件系统中的文件夹,一个包可包含多个模块或子包
  • 模块:即 .go 源文件

2. 项目管理工具

  • gopath:早期工具,使用不便且易出错
  • gomod:从 Go v1.11 开始推荐使用,功能完善
  • govendor:已弃用

3. 实现步骤

  • 创建项目
  • 项目初始化
  • 创建包
  • 创建模块
  • 相互调用