完整 Go 入门指南:设置、语法与第一个程序

发布: (2026年1月15日 GMT+8 05:13)
7 min read
原文: Dev.to

Source: Dev.to

请提供您希望翻译的具体文本内容,我将为您翻译成简体中文并保留原有的格式、Markdown 语法以及技术术语。

Source:

介绍

你是否曾经想要学习一门新的编程语言,却面对众多选择感到犹豫:Java、Python、Rust、Go?我做了调查,Go 引起了我的兴趣,正如 JetBrains 报告中所示(链接)。Go 的用户大约有 480 万。许多公司因其高性能而广泛采用 Go 进行后端开发和库的构建。

Go 有许多优势,我们将在后续文章中详细介绍。下面简要回顾一下 Go 的背景:

  • 由 Google 创建;首次公开发布于 2009 年。
  • 旨在解决 Google 大规模系统面临的问题(编译慢、复杂度高、并发支持不足)。
  • 目标是保持简洁、对开发者友好且易读——比 C++ 或 Java 更易上手,同时保留它们的许多优势。

在本文结束时,我们将完成 Go 的安装并编写我们的第一个程序。

安装与验证

步骤 1 – 下载并安装

  1. 访问官方下载页面: .
  2. 获取适用于您操作系统的安装程序并运行它。
  3. 安装程序会设置 Go 并配置必要的路径。

提示: 在 macOS 上,您也可以通过 Homebrew 安装:brew install go

步骤 2 – 验证安装

打开终端(bash、PowerShell 等)并运行:

go version
# Example output:
# go version go1.25.5 darwin/arm64

如果您看到类似 go version go1.21.5 … 的输出,说明安装成功,Go 已可使用。

什么是 Go 模块?

Go 模块 是一组 Go 文件的集合,其中包含一个 go.mod 文件。go.mod 文件记录了模块的名称及其依赖项。过去,这些工作是通过特殊的工作区(GOPATH)来处理的,但模块已经取代了这种方式。

创建新模块

mkdir my-go-app
cd my-go-app
# 将 <module-name> 替换为你喜欢的名称(例如,仓库 URL)
go mod init my-first-go-project

该命令会创建一个 go.mod 文件,它成为你的 Go 项目的根目录。此后所有命令都相对于该文件夹执行。

Go mod init

Directory layout

怀旧的 “Hello, World!”

在项目文件夹中创建一个名为 main.go 的文件,并添加以下代码:

package main // Every executable program starts with package main

import "fmt"
// Unlike Python, where functions like print are built‑in,
// in Go they live in packages; we need fmt for printing.

func main() {               // Entry point of the program
    fmt.Println("Hello, World!") // Prints the text
}

运行与构建:go run vs go build

go run — 快速测试

为什么使用它? 用来立即检查代码是否能运行;不会留下可执行文件。

go run main.go

Go run command

go build — 创建可执行文件

为什么使用它? 用来编译生成一个独立的二进制文件,能够在没有安装 Go 的机器上共享或运行。

go build main.go   # 生成可执行文件(例如 Windows 上的 main.exe)

运行该命令后,你会在文件夹中看到一个二进制文件(macOS/Linux 上为 main,Windows 上为 main.exe)。可以直接执行它。

当前项目布局

运行以下命令查看目录结构(在 Windows 上使用 dir):

ls -la
# Output:
# my-go-app/
# ├── go.mod   # Module definition
# ├── main.go  # Source code
# └── main     # Compiled binary (or main.exe on Windows)

变量和基本类型

变量是用于存储数据的容器。Go 是 静态类型,因此每个变量的类型必须在编译时确定。

基本类型

类型描述
string文本(例如,"Hello"
int整数(例如,10-10
float64小数(例如,3.14
bool布尔值(truefalse

声明变量的三种方式

1. 完整声明(冗长)

var name string = "Tom Cruise"
var age int
age = 25

2. 类型推断(更简洁)

var name = "Tom Cruise" // Go infers `string`
var age = 25            // Go infers `int`

3. 短变量声明(函数内部)

func main() {
    name := "Tom Cruise" // := declares & infers type
    age := 25
    fmt.Println(name, age)
}

Go 中的变量声明

下面列出了在 Go 中声明变量的不同方式,并附有简短示例。

1. 完整声明(函数外)

package main

import "fmt"

var name string = "Tom" // 完整声明并指定类型
var age = 30             // 类型推断 – Go 推断为 `int`

func main() {
    fmt.Println(name, age)
}

2. 短声明(主要在函数内部)

使用 := 运算符。它在一步中 声明并 初始化变量。

package main

import "fmt"

func main() {
    name := "Tom"   // string
    age := 25       // int
    isActor := true // bool
    height := 5.5   // float64

    fmt.Println(name, age, isActor, height)
}

3. 综合示例

一个结合了不同声明方式的 main.go 示例:

package main

import "fmt"

func main() {
    var name string = "Tom" // 完整声明
    var age = 25            // 类型推断
    isActor := true         // 短声明(在 main 中)
    height := 5.5           // Float64

    fmt.Println(name, age, isActor, height) // 使用变量

    age = 26 // 修改变量
    fmt.Println(name, age, isActor, height) // 再次使用变量
}

接下来做什么?

我们已经:

  • 安装了 Go
  • 创建了基于模块的项目
  • 运行了我们的第一个程序
  • 学习了基本数据类型和变量声明

亲自尝试

  • 修改 fmt.Println 语句中的信息。
  • 创建新变量并为其存储不同的值。
  • 尝试将字符串赋给 int 变量,观察编译器错误。
  • 使用 go build 构建可执行文件并分享给朋友。

在后续的文章中,我们将介绍更多语法,包括 条件语句循环

需要帮助吗? 在评论中留下你的输出或任何问题,我会尽力为你解答。

Back to Blog

相关文章

阅读更多 »