Go 语言入门指南: 环境搭建、基础语法和常用特性解析 | 青训营
从零开始
Go 语言简介
Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。
Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。
Go语言的设计目标是简单、高效、可靠,并且易于编程,以解决其他编程语言的一些痛点和限制。
- 并发支持:Go 语言天生支持并发编程,提供了轻量级的Goroutines和通道(Channel)机制,使并发编程变得简单和高效。这使得编写并发程序变得容易,且能够充分利用多核处理器。
- 高性能:Go 语言在运行时性能方面表现优异。其编译器能够产生高效的机器码,使得 Go 程序在性能上能够与 C++ 等编程语言相媲美。
- 跨平台:Go语言支持跨多个平台,包括Windows、Linux、macOS等。开发者可以方便地编译和运行代码在不同的操作系统上。
- 强调工具链:Go语言提供了完善的工具链,包括代码格式化工具、测试工具、性能分析工具等,使得开发、测试和部署变得更加简单和高效。
- 丰富的标准库:Go语言内置了许多常用的库,涵盖网络、文件操作、加密、文本处理等多个领域,让开发者能够更轻松地构建复杂的应用程序。
总体而言,Go语言的背景和特色使其成为一门优秀的现代编程语言,适用于构建高性能、高并发的系统,也适合快速开发和轻松上手。它在云计算、网络服务、分布式系统等领域得到广泛应用,并持续在开发者社区中受到关注和支持。
开发环境搭建
本文将以 Windows 下的 VS Code 作为例子介绍 Go 开发环境的搭建方法。当然你也可以使用 Goland 作为你的 IDE。
-
安装Go语言
首先,你需要下载并安装Go语言的二进制发行版本。前往官网下载适用于Windows的安装程序。
运行安装向导,没啥问题的话一路下一步即可。
-
配置环境变量
正确安装完应该都会有,只是确认一下。
确保 Go 语言的安装目录已经添加到系统的环境变量中。在开始菜单中搜索
path
,打开编辑系统环境变量
对话框,在系统变量
中找到名为 “Path” 的变量,点击“编辑”,然后添加Go语言的安装路径(默认为C:\Program Files\Go\bin
或你自定义的路径)。 -
安装 Visual Studio Code
-
安装 Go 扩展
在 VS Code 中,打开扩展视图(快捷键
Ctrl+Shift+X
),搜索并安装 Go 的官方扩展。安装完毕后,重新启动 VS Code。
-
配置 Go Proxy
由于总所周知的原因,国内网络环境下载各种包的速度很慢很慢。因此,我们需要配置一下 Go proxy。
访问 GOPROXY.IO - 一个全球代理 为 Go 模块而生 按照说明设置你的开发环境。
使配置长久生效 (推荐)
上面的配置步骤只会当次终端内生效,如何长久生效呢,这样就不用每次都去配置环境变量了。
Mac/Linux
# 设置你的 bash 环境变量 echo "export GOPROXY=https://proxy.golang.com.cn,direct" >> ~/.profile && source ~/.profile # 如果你的终端是 zsh,使用以下命令 echo "export GOPROXY=https://proxy.golang.com.cn,direct" >> ~/.zshrc && source ~/.zshrc
Windows
1. 右键 我的电脑 -> 属性 -> 高级系统设置 -> 环境变量 2. 在 “[你的用户名]的用户变量” 中点击 ”新建“ 按钮 3. 在 “变量名” 输入框并新增 “GOPROXY” 4. 在对应的 “变量值” 输入框中新增 “https://proxy.golang.com.cn,direct” 5. 最后点击 “确定” 按钮保存设置
-
配置 Go 环境变量(可选)
打开 VS Code后,按
Ctrl+Shift+P
,输入Go: Install/Update Tools
,选择并运行该命令。它将会为你安装Go语言的一些常用工具,如格式化工具(gofmt)、代码检查工具(golint)、调试器(delve)等。 -
创建 Go 项目
现在,你可以创建一个Go项目并开始编写代码了。在任意目录下创建你的项目文件夹,然后在 VS Code中打开该文件夹。VS Code 会自动识别 Go 语言项目,并在左下角显示“Go”标志。
-
Hello, world!
现在你已经搭建好了Go语言的开发环境,可以在 VS Code 中创建和编辑 Go 源代码文件,并使用Go的工具链进行编译、运行和调试。
试试 Hello, world 吧!
package main import "fmt" func main() { fmt.Println("Hello, World!") }
Let's Go! 基本语法
Hello World
首先,让我们看看 Hello world 程序中发生了什么?
package main
import "fmt"
// This is discription
func main() {
fmt.Println("Hello, World!")
}
让我们来看下以上程序的各个部分:
-
Package声明
代码以
package main
开头,表明这个Go文件属于main
包。在Go中,每个可执行程序都必须有一个main
包,并且在main
包中必须有一个main()
函数作为程序的入口点。 -
导入语句
使用
import "fmt"
导入了fmt
包。fmt
包是Go标准库中的一个包,提供了输入输出和格式化文本的功能。在本代码中,使用了fmt.Println()
函数来输出文本。 -
注释
// This is description
是一行注释。在Go中,使用//
表示单行注释,用于向代码中添加解释和说明。 -
main函数
在Go程序中,
main()
函数是程序的入口点。当程序执行时,它会首先执行main()
函数。在这段代码中,main()
函数简单地调用fmt.Println()
函数,将字符串"Hello, World!"输出到控制台。 -
执行输出
代码通过调用
fmt.Println("Hello, World!")
将 "Hello, World!" 这个字符串输出到终端。fmt.Println()
函数是一个方便的方法,用于在控制台输出文本,并在输出的最后自动添加一个换行符。
注意:在Go中,函数名首字母的大小写决定了该函数的可见性。
如果函数名以大写字母开头,那么它是可导出的 ,其他包可以访问该函数。(类似面向对象语言中的 public)
如果函数名以小写字母开头,它是私有的,其他包无法访问该函数。(类似面向对象语言中的 protected )
在这个例子中,main()
函数是可导出的,因为它以大写字母开头,允许被其他包调用。
变量和常量
在Go中