每一门新语言的学习都是从“hello, world”开始的。
按照官网的下载及安装文档就很简单集成go开发环境。 Mac和Windows提供了可视化的图形安装方式,还是非常人性化的。 安装成功后,可通过如下命令进行查看,并判断是否安装成功。
go version
建议配置国内的镜像服务器:
配置国内镜像代理(使用阿里云镜像)
go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/
验证
go env|grep GOPROXY
首先推荐知名JetBrains针对Go语言推出的GoLang,这对Java开发同学或者Android同学非常友好;
当然如果是前端同学想要学习Go语言开发,那么就首推微软开源的跨语言源码编辑器VS Code了,添加对应的Go插件即可。
可以直接通过IDE,或者创建普通文件的形式就行学习第一个go程序。建议创建一个用于包含所有练习项目的文件件,方便学习管理。
1. 创建一个demo.go文件,内容如下
package main
import "fmt"
func main() {
fmt.Println("Hello, world")
fmt.Println("你好, 世界")
}
2. 执行go编译命令
go build demo.go
或者在IDE中可以直接点击图中的绿色按钮进行编译
3. 输出结果如下
Hello, world
你好, 世界
1. package main
这一行代码定义了 Go 中的一个包 package。包是 Go 语言的基本组成单元,通常使用单个的小写单词命名,一个 Go 程序本质上就是一组包的集合。 main包在Go中是一个特殊的包,整个Go程序中仅允许存在一个名为 main 的包。 main包中的主要代码就是这个main()函数,这是go可执行程序的入口函数。
func main() {
fmt.Println("Hello, world")
fmt.Println("你好, 世界")
}
如果不是package main包,那么这个main()函数知识一个普通函数,那么再ide上也没有绿色的小按钮了。
2. Gofmt
Go语言内置了一套Go社区约定俗称的代码风格,并随安装包提供了一个名为Gofmt的工具,这个工具可以帮助你将代码自动格式化为约定的风格。
因此,作为Go开发人员,请在提交你的代码前使用Gofmt格式化你的Go源码。
对于使用Mac的小伙伴可以直接使用快捷键【command+option+l】快速格式化程序代码。
3. 标准 Go 代码风格使用 Tab 而不是空格来实现缩进的
4. 导包及函数调用
在 Go 语言中,只有首字母为大写的标识符才是导出的(Exported),才能对包外的代码可见;如果首字母是小写的,那么就说明这个标识符仅限于在声明它的包内可见。
5.所见即所得 Go源码文件本身采用的是Unicode字符集,而且用的是UTF-8标准的字符编码方式;因此不会存在像Python那样存在中文的编码问题,需要在在文件开头加入 # -- coding: UTF-8 -- 或者 # coding=utf-8,比如下面这样
#!/usr/bin/python
# -*- coding: UTF-8 -*-
print( "你好,世界" )
6.编码中分号是可选的
使用go build命令编译后生成二进制可执行文件,通过ls命令可以进行查看
go build demo.go
MacBook-Pro-5:awesomeProject demo$ ls
demo demo.go go.mod
demo文件即为可执行文件(Windows系统下为demo.exe,其余系统下为demo)
Go是一种编译型语言,这意味着只有你编译完Go程序之后,才可以将生成的可执行文件交付于其他人,并运行在没有安装Go的环境中。
当然也可以不经过编译,直接运行查看结果,使用 go run 命令,这通常用在开发调试阶段。
MacBook-Pro-5:awesomeProject demo$ go run demo.go
Hello, world
你好, 世界
Go module构建模式是在Go1.11版本正式引入的,为的是彻底解决 Go 项目复杂版本依赖的问题,在 Go1.16版本中,Go module 已经成为了 Go 默认的包依赖管理机制和Go源码构建机制。
Go Module的核心是一个名为 go.mod 的文件,在这个文件中存储了这个 module 对第三方依赖的全部信息,相当于flutter中的pubspec.yaml文件, ReactNative项目中的package.json文件。
go.mod文件的内容示例如下,
module hellomodule
go 1.16
require (
github.com/valyala/fasthttp v1.38.0
go.uber.org/zap v1.22.0
)
题外话
可以使用 go mod tidy添加所有第三方依赖, 与此同时也会生成一个go.sum文件。
go.sum文件,这个文件记录了 hellomodule 的直接依赖和间接依赖包的相关版本的 hash 值,用来校验本地包的真实性。在构建的时候,如果本地依赖包的 hash 值与 go.sum 文件中记录的不一致,就会被拒绝构建。
参考资料 极客时间《Go语言第一课》
本文由 mdnice 多平台发布