Go基础:Go语言详细介绍,环境搭建,及第一个程序详解
文章目录
- 一、Go语言详细介绍
- 1.1 诞生背景
- 1.2 定义与特点
- 1.3 应用领域
- 二、Go语言环境搭建
- 2.1 安装Go编译器
- 2.2 Windows MSI 下安装
- 2.3 Linux 下安装
- 2.4 macOS 下安装
- 2.5 安装测试
- 2.6 环境变量设置
- 三、第一个Go程序详解
- 3.1 编写第一个程序
- 3.2 程序详细解析
- 3.3 编译发布
- 3.4 跨平台编译
- 3.5 Go 编辑器推荐
一、Go语言详细介绍
1.1 诞生背景
Go语言,也被称为Golang,是由Google的三位资深工程师——罗伯特·格里斯莫(Robert Griesemer)、罗布·派克(Rob Pike)和肯·汤普森(Ken Thompson)于2007年开始设计,并于2009年正式开源发布的一种编程语言。
Go语言的诞生是为了满足现代软件开发的需求,特别是在并发编程和系统编程方面,追求高效性、简洁性和性能。其主要原因包括以下几点:
- 解决传统语言的不足:当时主流的编程语言如C++和Java,在处理大规模并发任务时显得复杂且低效。Go语言的设计初衷之一就是简化并发编程,通过引入goroutine和channel等机制,使并发操作更加直观和高效。
- 提高开发效率:Go语言注重简洁性和易用性,力求在语言层面减少开发者的负担。例如,其语法简洁、编译速度快,同时支持垃圾回收,从而显著提升开发效率。
- 适应现代硬件发展:随着多核处理器的普及,如何充分利用硬件性能成为软件开发的重要挑战。Go语言通过内置的并发支持,使开发者能够更轻松地编写高效的多线程程序。
1.2 定义与特点
其核心特点包括:
- 并发性:通过goroutine和通道(channel)实现轻量级并发,支持高并发场景。
- 类型安全:静态类型语言,防止类型不匹配错误,提高代码可靠性。
- 跨平台:支持Windows、Linux、macOS等多种操作系统。
- 内存管理:内置垃圾回收机制,减少内存泄漏风险。
- 高效编译:编译速度快,生成高效的机器码。
- 高性能:Go语言编译为机器码,运行效率接近C语言,同时具备动态语言的开发速度。
1.3 应用领域
Go语言因其高并发性和高效性,被广泛应用于以下领域:
- 后端服务:高性能网络服务器、数据库应用程序等。
- 分布式系统:微服务架构、消息传递系统、Kubernetes等。
- 云计算:云服务开发、容器技术等。
- 网络编程:Web服务器、代理、负载均衡等。
二、Go语言环境搭建
在使用Go语言进行开发前,需要完成以下环境搭建步骤:
2.1 安装Go编译器
1、下载安装包:从Go语言官网(https://golang.org/dl/)下载适合操作系统的安装包。如果下载不了可以从国内的官网:https://golang.google.cn/dl/ 进行下载。
下载时可以根据自己的操作系统选择相应的开发包,比如 Window、MacOS 或是 Linux 等,如下图所示:
2.2 Windows MSI 下安装
MSI 安装的方式比较简单,在 Windows 系统上推荐使用这种方式。现在的操作系统基本上都是 64 位的,所以选择 64 位的 go1.25.1.windows-amd64.msi 下载即可,如果操作系统是 32 位的,选择 go1.25.1.windows-386.msi 进行下载。
下载后双击该 MSI 安装文件,按照提示一步步地安装即可。在默认情况下,Go 语言开发工具包会被安装到 c:\Go 目录,你也可以在安装过程中选择自己想要安装的目录。
假设安装到 c:\Go 目录,安装程序会自动把 c:\Go\bin 添加到你的 PATH 环境变量中,如果没有的话,你可以通过系统 -> 控制面板 -> 高级 -> 环境变量选项来手动添加。
2.3 Linux 下安装
可以根据你的 Linux 操作系统选择相应的压缩包 go1.25.1.linux-amd64.tar.gz。下载成功后,需要先进行解压,在终端通过如下命令即可解压:
sudo tar -C /usr/local -xzf go1.25.1.linux-amd64.tar.gz
输入后回车,然后输入你的电脑密码,即可解压到 /usr/local 目录,然后把 /usr/local/go/bin 添加到 PATH 环境变量中,就可以使用 Go 语言开发工具包了。
把下面这段添加到 /etc/profile 或者 $HOME/.profile 文件中,保存后退出即可成功添加环境变量。
export PATH=$PATH:/usr/local/go/bin
2.4 macOS 下安装
如果你的操作系统是 macOS,可以采用 PKG 安装包。下载 go1.25.1.darwin-amd64.pkg 后,双击按照提示安装即可。安装成功后,路径 /usr/local/go/bin 应该已经被添加到了 PATH 环境变量中,如果没有的话,你可以手动添加,和上面 Linux 的方式一样,把如下内容添加到 /etc/profile 或者 $HOME/.profile 文件保存即可。
export PATH=$PATH:/usr/local/go/bin
2.5 安装测试
以上都安装成功后,你可以打开终端或者命令提示符,输入 go version 来验证 Go 语言开发工具包是否安装成功。如果成功的话,会打印出 Go 语言的版本和系统信息,如下所示:
$ go version
go version go1.25.1 darwin/arm64
2.6 环境变量设置
Go 语言开发工具包安装好之后,它的开发环境还没有完全搭建完成,因为还有两个重要的环境变量没有设置,它们分别是 GOPATH 和 GOBIN。
- GOPATH:代表 Go 语言项目的工作目录,在 Go Module 模式之前非常重要,现在基本上用来存放使用 go get 命令获取的项目。
- GOBIN:代表 Go 编译生成的程序的可执行文件目录,比如通过 go install 命令,会把生成的 Go 程序安装到 GOBIN 目录下,以供你在终端使用。
假设工作目录为 /Users/data/go,你需要把 GOPATH 环境变量设置为 /Users/data/go,把 GOBIN 环境变量设置为 $GOPATH/bin。
在 Linux 和 macOS 下,把以下内容添加到 /etc/profile 或者 $HOME/.profile 文件保存即可。然后运行source /etc/profile
使配置生效。
export GOPATH=/Users/data/go
export GOBIN=$GOPATH/bin
三、第一个Go程序详解
3.1 编写第一个程序
以下是一个经典的“Hello, World!”程序,展示了Go语言的基本语法:(文件命名为:main.go)
package main
import "fmt"
func main() {fmt.Println("Hello, 世界!")
}
这五行代码就构成了一个完整的 Go 程序,是不是非常简单?现在我运行这段代码,看看输出的结果,方法是打开终端输入以下命令,然后回车。
$ go run main.go
Hello, 世界!
3.2 程序详细解析
package main
:声明该文件属于主包,Go程序的入口点必须位于main
包中。其中 package 是 Go 语言声明包的关键字,main 是要声明的包名。在 Go 语言中 main 包是一个特殊的包,代表你的 Go 语言项目是一个可运行的应用程序,而不是一个被其他项目引用的库。import "fmt"
:导入标准库中的fmt
包,用于格式化输入输出。其中 import 是 Go 语言的关键字,表示导入包的意思,这里我导入的是 fmt 包,导入的目的是要使用它。func main()
:定义主函数,是程序的执行入口。其中 func 是 Go 语言的关键字,表示要定义一个函数或者方法的意思,main 是函数名,() 空括号表示这个 main 函数不接受任何参数。在 Go 语言中 main 函数是一个特殊的函数,它代表整个程序的入口,也就是程序在运行的时候,会先调用 main 函数,然后通过 main 函数再调用其他函数,达到实现项目业务需求的目的。fmt.Println("Hello, 世界!")
:是通过 fmt 包的 Println 函数打印“Hello, 世界”这段文本。其中 fmt 是刚刚导入的包,要想使用一个包,必须先导入。Println 函数是属于包 fmt 的函数,这里我需要它打印输出一段文本,也就是“Hello, 世界”。
从以上分析来看,Go 语言的代码是非常简洁、完整的核心程序,只需要 package、import、func main 这些核心概念就可以实现。
3.3 编译发布
完成了你的项目后,可以编译生成可执行文件,也可以把它发布到 $GOBIN 目录,以供在终端使用。以“Hello 世界”为例,在项目根目录输入以下命令,即可编译一个可执行文件。
$ go build main.go
回车执行后会在当前目录生成 main 可执行文件,现在,我们来测试下它是否可用。
$ ./main
Hello, 世界!
如果成功打印出“Hello, 世界”,证明程序成功生成。以上生成的可执行文件在当前目录,也可以把它安装到 $GOBIN 目录或者任意位置,如下所示:
$ go install main.go
使用 go install
命令即可,现在你在任意时刻打开终端,输入 main 回车,都会打印出“Hello, 世界”,是不是很方便!
3.4 跨平台编译
Go 语言开发工具包的另一强大功能就是可以跨平台编译。什么是跨平台编译呢?就是你在 macOS 开发,可以编译 Linux、Window 等平台上的可执行程序,这样你开发的程序,就可以在这些平台上运行。也就是说,你可以选择喜欢的操作系统做开发,并跨平台编译成需要发布平台的可执行程序即可。Go 语言通过两个环境变量来控制跨平台编译,它们分别是 GOOS 和 GOARCH 。
- GOOS:代表要编译的目标操作系统,常见的有 Linux、Windows、Darwin 等。
- GOARCH:代表要编译的目标处理器架构,常见的有 386、AMD64、ARM64 等。
这样通过组合不同的 GOOS 和 GOARCH,就可以编译出不同的可执行程序。比如我现在的操作系统是 macOS AMD64 的,我想编译出 Linux AMD64 的可执行程序,只需要执行 go build 命令即可,如以下代码所示:
$ GOOS=linux GOARCH=amd64 go build main.go
关于 GOOS 和 GOARCH 更多的组合,参考官方文档的 $GOOS and $GOARCH 这一节即可。
3.5 Go 编辑器推荐
好的编辑器可以提高开发的效率,这里我推荐两款目前最流行的编辑器。
第一款是 Visual Studio Code + Go 扩展插件,可以让你非常高效地开发,通过官方网站 https://code.visualstudio.com/ 下载使用。
第二款是老牌 IDE 公司 JetBrains 推出的 Goland,所有插件已经全部集成,更容易上手,并且功能强大,新手老手都适合,你可以通过官方网站 https://www.jetbrains.com/go/ 下载使用。
总结:Go语言以其高效、简洁和强大的并发能力,成为现代开发中的重要工具。通过完成环境搭建和编写第一个程序,开发者可以快速上手Go语言,并逐步探索其在后端服务、分布式系统等领域的应用。如果需要更详细的学习资料,可以参考相关教程和官方文档。