Golang基础(一):环境部署与Hello World
Go语言概述
Golang创自2007年,由谷歌于2009年正式开源的一门计算机高级语言,其由C系语言改进而来,自开源以来便得到许多为人津津乐道的赞赏:天然支持高并发、跨平台、简单易用、性能高,其生态社区也逐渐完善,其设计哲学非常简单,直接丢弃了C++三大面向对象特性——类封装、继承和多态,泛型(1.18,2022年)是后面才引入的。
当然,Go在国内市场仍然是一款高度业务化的语言,多用于设计微服务和高并发,可玩性(可折腾性)比不上python和C/C++,这也是其设计哲学的体现,从底层而言其不提供手动内存管理而使用自动gc,不适用于内核开发;从应用层而言其更多专注后端服务,对Gui支持较差,就业市场也比较狭窄,尤其AI时代下使用其他语言去造轮子成本更低,使得Go并不那么需要被迫切普及。
但尝试新东西总会有新的启发,golang仍然是其中较为值得学习的语言之一。
windows 11安装和VsCode编译
go的安装比较简单,在网址下载msi安装,或下载压缩包(如go1.27.1.windows-amd64.zip,注意要x86-64架构的),解压并且设置环境变量即可,以下下载地址均可:
环境变量最好设置两个路径,其中GOROOT是编译器和标准库的依赖路径(我们下载完解压的目录),另一个GOPATH是第三方包的存放路径(默认用户目录),均添加到PATH环境变量即可。
验证: 1
2
3
4
5
6
7
8go version
go version go1.27.1 windows/amd64
go env GOROOT
D:\Documents\Desktop\go
go env GOPATH
C:\Users\heygears\go
由于只是小试牛刀,此处使用vscode编译就够了,打开安装Go插件和Code
Runner插件,安装后者实在是不想折腾了,好几次运行vscodee launch
build都会失败: 1
2
3
4
5
6
7
8
9
10$ go build
# internal/bytealg
go_asm.h:1: expected identifier, found "%"
asm: assembly of ..\go\src\internal\bytealg\compare_amd64.s failed
# internal/runtime/gc/scan
go_asm.h:1: expected identifier, found "%"
asm: assembly of ..\go\src\internal\runtime\gc\scan\expand_amd64.s failed
# internal/runtime/syscall/windows
go_asm.h:1: expected identifier, found "%"
asm: assembly of ..\go\src\internal\runtime\syscall\windows\asm_windows_amd64.s failed
而命令行是成功的,也没有看到比较有效方法,用这个插件调用反而成功,还可以一键运行,比较方便。
在设置-code-runner中勾选编译前保存文件,方便编译:

更改go代理
提升go module的下载速度。 1
go env -w GOPROXY=https://proxy.golang.com.cn/,direct
| 提供者 | 地址 |
|---|---|
| 官方全球代理 | https://proxy.golang.com.cn |
| 官方 | https://goproxy.io,direct |
| 七牛云 | https://goproxy.cn |
| 阿里云 | https://mirrors.aliyun.com/goproxy/ |
| GoCenter | https://gocenter.io |
| 百度 | https://goproxy.bj.bcebos.com/ |
Hello World
至此,重启计算机重新载入环境变量就可以尝试第一个实例了,新建文件夹:
1
mkdir alpha_go
1
go mod init alpha_go
go.mod文件,手动创建main.go文件,打印Hello World:
1
2
3
4
5
6package main // 声明 main 包,表明当前是一个可执行程序
import "fmt" // 导入内置 fmt
func main() { // main函数,是程序执行的入口
fmt.Println("Hello World!") // 在终端打印 Hello World!
}

