Go语言基础之开发环境

本文介绍了如何通过官方渠道下载并安装Go语言,详细解析了安装目录结构,并指导设置GOROOT和GOPATH环境变量。通过一个简单的HelloWorld程序,展示了Go语言的开发流程,包括代码编写、编译与执行。同时,文章提到了Go语言的并发优势、Unicode支持以及交叉编译功能。最后,强调了Go语言的语法规则,如自动分号插入和代码格式规范。

官方下载

通过Go语言官方下载地址 下载对应的安装文件
图片: https://uploader.shimo.im/f/cKYt8rw6oSdybaDe.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2MzkwNDg5NTEsImciOiJLcmtFVkdqQmExQzRNOEFKIiwiaWF0IjoxNjM5MDQ4NjUxLCJ1c2VySWQiOjY0MTQ2NjE0fQ.8P5bDKGW0LAkueFmjGA1S6Vp-bIMA8xz9KuO5_R-DCU

安装完成后会在安装目录下生成如下内容
图片: https://uploader.shimo.im/f/27oQX78mJgbajRha.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2MzkwNDg5NTEsImciOiJLcmtFVkdqQmExQzRNOEFKIiwiaWF0IjoxNjM5MDQ4NjUxLCJ1c2VySWQiOjY0MTQ2NjE0fQ.8P5bDKGW0LAkueFmjGA1S6Vp-bIMA8xz9KuO5_R-DCU

Go语言开发的安装目录说明

目录名解释
api每个版本的API变更差异
bingo源码包编译出的编译器(go)、文档工具(godoc)、格式化工具(gofmt)
docgo文档
lib引用的一些库文件
misc杂项用途的文件,例如Android平台的编译、git的提交钩子等
pkgWindows平台编译好的中间文件
src标准库源码
test测试用例

环境配置

设置GOROOT

GOROOT是Go语言的安装路径
图片: https://uploader.shimo.im/f/THlP2pjsvVsMxMwK.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2MzkwNDg5NTEsImciOiJLcmtFVkdqQmExQzRNOEFKIiwiaWF0IjoxNjM5MDQ4NjUxLCJ1c2VySWQiOjY0MTQ2NjE0fQ.8P5bDKGW0LAkueFmjGA1S6Vp-bIMA8xz9KuO5_R-DCU

设置GOPATH

GOPATH是Go语言编译时参考的工作路径,类似于Java仲的Workspace的概念,选择一个空目录作为GOPATH即可
图片: https://uploader.shimo.im/f/ZuI8g2JCXpo9OwR1.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2MzkwNDg5NTEsImciOiJLcmtFVkdqQmExQzRNOEFKIiwiaWF0IjoxNjM5MDQ4NjUxLCJ1c2VySWQiOjY0MTQ2NjE0fQ.8P5bDKGW0LAkueFmjGA1S6Vp-bIMA8xz9KuO5_R-DCU

HelloWorld

新建Directory,在Directory下新建main.go文件,在文件中写入如下代码

package main
import "fmt"
func main() {
   fmt.Println("Hello World")
}

右键 Run 'go build main.go'

图片: https://uploader.shimo.im/f/7JJ7lsAxIIGjo5iM.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2MzkwNDg5NTEsImciOiJLcmtFVkdqQmExQzRNOEFKIiwiaWF0IjoxNjM5MDQ4NjUxLCJ1c2VySWQiOjY0MTQ2NjE0fQ.8P5bDKGW0LAkueFmjGA1S6Vp-bIMA8xz9KuO5_R-DCU
也可以在命令行使用命令执行
图片: https://uploader.shimo.im/f/h4f8Fg9ibgoSkNAr.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2MzkwNDg5NTEsImciOiJLcmtFVkdqQmExQzRNOEFKIiwiaWF0IjoxNjM5MDQ4NjUxLCJ1c2VySWQiOjY0MTQ2NjE0fQ.8P5bDKGW0LAkueFmjGA1S6Vp-bIMA8xz9KuO5_R-DCU

为什么要GO

  • 比Java代码简洁、开发效率更高、性能更好
  • 比Python性能高很多,尤其并发处理优势
  • Go语言不会取代Java,也不会取代Python,但更多和服务器打交道的开发会选择GO语言,Docker、Kubernetes就是Go语言开发的

GO语言的执行过程

Go语言是编译型语言,当我们直接执行run命令执行代码的时候,实际上是先编译成二进制机器指令,然后连接相关资源运行,最终输出结果,也可以把编译和执行分成两步,先使用go build指令进行编译,然后找到生成的二进制程序,直接执行

PS D:\Programs\Go\GolandProjects\book\Training> go build .\main.go
PS D:\Programs\Go\GolandProjects\book\Training> .\main.exe
Hello World
PS D:\Programs\Go\GolandProjects\book\Training>

另外Go语言是原生支持Unicode的,所以更方便处理汉字及其他各种语言文字

package main
import "fmt"
func main() {
   fmt.Println("我醉欲眠卿且去")
}
PS D:\Programs\Go\GolandProjects\book\Training> go build .\main.go
PS D:\Programs\Go\GolandProjects\book\Training> .\main.exe
我醉欲眠卿且去
PS D:\Programs\Go\GolandProjects\book\Training>

使用Import导入的包必须在本程序中用到,如果导入了却没有用到,则编译无法通过,同样声明变量也必须用到,否则也无法通过编译,这是Go的优良特性之一

交叉编译

Mac 下编译, Linux 或者 Windows 下去执行

# linux 下去执行
CGO_ENABLED=0  GOOS=linux  GOARCH=amd64  go build main.go
# Windows 下去执行
CGO_ENABLED=0 GOOS=windows  GOARCH=amd64  go  build  main.go

Linux 下编译 , Mac 或者 Windows 下去执行

# Mac  下去执行
CGO_ENABLED=0 GOOS=darwin  GOARCH=amd64  go build main.go
# Windows 下执行
CGO_ENABLED=0 GOOS=windows  GOARCH=amd64  go build main.go

Windows 下编译 , Mac 或 Linux 下去执行

需要写一个批处理程序,在里面去设置,因为windows 下的 terminal 不支持shell , 这跟 Mac 和 Linux下的有点不同

# Mac 下执行
SET  CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build main.go
# Linux 去执行
SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
go build main.go

语句解析

Go语言实际上是可以用分号的,可以把多行代码写在一行,但并不建议如此,那么既然Go语言没有分号,又如何做语句解析的?在这一点上有些类似于Python,但又不同于Python,Go在编译的时候会把换行符解析为分号,因此在写Go代码的时候需要注意换行,即不要把函数的大括号单独作为一行,那样编译是无法通过的,此外还要注意Go语言的代码格式,不过IDE会自动检查纠正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Davieyang.D.Y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值