day 1: 环境准备与第一个 Go 程序
Table of Contents
第一天:环境准备与第一个 Go 程序
学习目标
- 搭建 Go 开发环境
- 熟悉
go mod
、go run
、go build
- 编写并运行第一个 Go 程序
- 通过 LeetCode 简单题体验 Go 语言语法
- 思考与服务开发的关联
1. 环境搭建
安装 Go
- 访问 Go 官方下载页面。
- 选择对应平台的安装包 (Windows、macOS、Linux)。
-
安装完成后,验证版本:
go version
输出类似:
go version go1.22.2 darwin/amd64
配置工作区
推荐使用 Go Modules(Go 1.13+ 默认支持)。
检查是否启用:
go env GOMOD
如果输出为空,可以在项目目录执行:
go mod init myservice
IDE 选择
推荐使用:
- VS Code + Go 插件
- 或 Goland (付费,但对 Go 支持很完善)
2. 第一个 Go 程序:Hello Service
创建一个目录:
mkdir day01-hello
cd day01-hello
go mod init day01-hello
新建 main.go
:
package main
import "fmt"
func main() {
fmt.Println("Hello, Go Service World!")
}
运行:
go run main.go
输出:
Hello, Go Service World!
构建二进制:
go build -o hello
./hello
3. 第一个 LeetCode 例子:两数之和
微服务开发需要良好的算法和数据结构基础,我们从最经典的 LeetCode #1 两数之和 开始。
题目:
给定一个整数数组 nums
和一个目标值 target
,找出数组中和为目标值的两个数的下标。
Go 解法
two_sum.go
:
package main
import "fmt"
func twoSum(nums []int, target int) []int {
m := make(map[int]int)
for i, num := range nums {
if j, ok := m[target-num]; ok {
return []int{j, i}
}
m[num] = i
}
return nil
}
func main() {
nums := []int{2, 7, 11, 15}
target := 9
result := twoSum(nums, target)
fmt.Println("输入:", nums, "目标:", target)
fmt.Println("结果:", result)
}
运行:
go run two_sum.go
输出:
输入: [2 7 11 15] 目标: 9
结果: [0 1]
4. 与服务开发的联系
为什么从 LeetCode 开始?因为:
- Map 使用:Go 的
map
是高性能哈希表,广泛用于缓存、索引、存储用户会话等场景。 - 错误处理:返回
nil
是 Go 常见模式,类似于在微服务中返回错误或空结果。 - 性能:哈希表在高并发服务中是常用的优化工具。
未来的微服务项目里,你会用 map
来管理用户任务、缓存配置、维护连接状态等。今天的例子就是一个最小化的演练。
5. 今日小结
今天我们完成了:
- 安装 Go 环境
- 编写并运行第一个 Go 程序
- 解决了 LeetCode 的 “两数之和” 问题
- 初步理解了
map
的使用及其与微服务的关系
6. 作业
- 修改程序,尝试不同输入,观察结果。
- 在
main
中加一个错误检查逻辑:当结果为nil
时输出提示信息。 - 思考:如果这是一个微服务接口,如何把结果通过 JSON 返回给客户端?
Comments |0|
Category: 似水流年