第一章:准备启航——环境搭建与第一个Go程序

在开始编码之前,我们需要先搭建好开发环境。

1.1 Go的安装 #

访问Go的官方网站 golang.org 或者国内镜像 golang.google.cn 下载适合你操作系统(Windows, macOS, Linux)的安装包。安装过程非常直接,一路点击“下一步”即可。

安装完成后,打开你的终端(命令行工具),输入以下命令来验证安装是否成功:

go version

如果能看到类似 go version go1.22.5 darwin/amd64 的输出,恭喜你,Go已经成功安装!

1.2 工作区与Go Modules #

在PHP中,你习惯了将项目代码放在任意目录。在Go的早期版本中,有一个GOPATH的概念,强制所有代码都放在一个固定的工作区。但现在,我们有了更现代、更灵活的方案:Go Modules

Go Modules类似于PHP的Composer,它允许你在任何位置创建项目,并通过go.mod文件来管理依赖。

让我们来创建第一个项目:

# 1. 创建一个项目目录,可以是你喜欢的任何位置
mkdir ~/go-projects/hello-world
cd ~/go-projects/hello-world

# 2. 初始化Go Module
# "hello-world"是我们的模块名,可以自定义
go mod init hello-world

执行后,你会看到目录下生成了一个go.mod文件,它的内容很简单:

module hello-world

go 1.22

这个文件就相当于PHP项目中的composer.json,它定义了模块名和Go版本。

1.3 “Hello, World!” #

现在,让我们编写第一个Go程序。在hello-world目录下创建一个名为main.go的文件:

// main.go

// 每个Go文件都属于一个包,可执行程序的入口必须是main包
package main

// 导入我们需要的包,fmt用于格式化输入输出
import "fmt"

// main函数是程序的入口点
func main() {
    fmt.Println("Hello, World!")
}

与PHP的对比:

  • package main: 类似于PHP的命名空间,但main包有特殊含义,表示这是一个可执行程序。
  • import "fmt": 类似于PHP的userequire,用于引入其他代码包。
  • func main(): 这是程序的唯一入口,类似于PHP在全局作用域下执行的代码,但Go强制要求一个明确的main函数。

1.4 运行你的程序 #

在终端中,有几种方式可以运行这个程序:

  1. 直接运行 (go run):这会编译并立即执行代码,适合开发调试。

    go run main.go
    # 输出: Hello, World!
    
  2. 编译构建 (go build):这会生成一个可执行的二进制文件。

    go build
    

    执行后,目录下会多出一个名为hello-world(在Windows上是hello-world.exe)的文件。你可以直接运行它:

    ./hello-world
    # 输出: Hello, World!
    

    这个单一的文件就是你的整个应用,你可以把它拷贝到任何同架构的服务器上运行,无需安装任何Go环境或依赖。这就是Go部署简单的魅力所在。