Go(又称Golang)是由Google在2009年发布的开源编程语言,由Robert Griesemer、Rob Pike和Ken Thompson设计。Go语言的诞生是为了解决大规模软件开发中的实际问题。
Windows系统:
# 下载 .msi 安装包,双击安装
# 默认安装路径:C:\Go
# 安装程序会自动配置环境变量
macOS系统:
# 方法1:使用安装包
# 下载 .pkg 文件,双击安装
# 方法2:使用Homebrew
brew install go
Linux系统:
# 下载tar.gz包
wget https://golang.org/dl/go1.21.5.linux-amd64.tar.gz
# 解压到/usr/local
sudo tar -C /usr/local -xzf go1.21.5.linux-amd64.tar.gz
# 配置环境变量(添加到 ~/.bashrc 或 ~/.zshrc)
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
# 查看Go版本
go version
# 查看Go环境信息
go env
# 输出示例:
# go version go1.21.5 darwin/amd64
| 变量名 | 说明 | 示例 |
|---|---|---|
| GOROOT | Go安装目录 | /usr/local/go |
| GOPATH | Go工作空间 | $HOME/go |
| GOPROXY | 模块代理 | https://goproxy.cn |
| GO111MODULE | 模块支持 | on |
# 设置Go模块代理
go env -w GOPROXY=https://goproxy.cn,direct
# 设置私有仓库跳过代理
go env -w GOPRIVATE=*.corp.example.com
# 启用Go模块
go env -w GO111MODULE=on
# 创建项目目录
mkdir hello-go
cd hello-go
# 初始化Go模块
go mod init hello-go
创建 main.go 文件:
package main
import "fmt"
func main() {
fmt.Println("Hello, Go!")
fmt.Println("欢迎来到Go语言的世界!")
}
# 方法1:直接运行(不生成可执行文件)
go run main.go
# 方法2:编译后运行
go build main.go
./main # Linux/macOS
main.exe # Windows
# 方法3:编译并安装到$GOPATH/bin
go install
package main - 声明包名,main包是程序的入口包import "fmt" - 导入fmt包,提供格式化I/O功能func main() - 主函数,程序执行的起点,每个可执行程序必须有且只有一个main函数fmt.Println() - 打印输出并自动换行| 命令 | 说明 |
|---|---|
| go run | 编译并运行Go程序 |
| go build | 编译生成可执行文件 |
| go install | 编译并安装到$GOPATH/bin |
| go get | 下载并安装依赖包 |
| go mod | 模块管理(init、tidy、download等) |
| go test | 运行测试 |
| go fmt | 格式化代码 |
| go vet | 代码静态检查 |
package main
import "fmt"
func main() {
// 变量声明
var name string = "Go语言"
var version float64 = 1.21
// 短变量声明
year := 2009
// 常量
const Pi = 3.14159
fmt.Printf("语言: %s\n", name)
fmt.Printf("版本: %.2f\n", version)
fmt.Printf("发布年份: %d\n", year)
fmt.Printf("圆周率: %.5f\n", Pi)
}
package main
import "fmt"
func main() {
a, b := 10, 3
fmt.Printf("加法: %d + %d = %d\n", a, b, a+b)
fmt.Printf("减法: %d - %d = %d\n", a, b, a-b)
fmt.Printf("乘法: %d * %d = %d\n", a, b, a*b)
fmt.Printf("除法: %d / %d = %d\n", a, b, a/b)
fmt.Printf("取模: %d %% %d = %d\n", a, b, a%b)
}
package main
import "fmt"
func main() {
var name string
var age int
fmt.Print("请输入你的名字: ")
fmt.Scanln(&name)
fmt.Print("请输入你的年龄: ")
fmt.Scanln(&age)
fmt.Printf("你好,%s!你今年%d岁了。\n", name, age)
}
go build编译程序,并运行生成的可执行文件go fmt格式化你的代码go env命令,了解Go的环境配置go fmt自动格式化package声明开始{不能单独成行