Go 语法与基础
约 60 分钟A2: 基本类型、控制流与错误处理
深入理解 Go 的类型系统、控制结构、错误处理模式以及 defer/panic
学习目标
- 1.掌握 Go 基本类型与 TypeScript 类型的对应关系
- 2.理解 Go 独特的错误处理模式(多返回值)
- 3.掌握 defer、panic、recover 的使用场景
课程内容
本课时将帮助你快速掌握相关知识。以下是示例代码:
main.go
1package main2 3import "fmt"4 5func main() {6 fmt.Println("Hello, Go!")7 8 // Go 的变量声明9 var name string = "TypeScript Developer"10 age := 25 // 短变量声明11 12 fmt.Printf("Name: %s, Age: %d\n", name, age)13}上面的代码演示了 Go 的基本语法,包括包声明、导入和变量声明。 注意第 8 行的短变量声明语法 :=,这是 Go 的特色。
与 TypeScript 对比
example.ts
// TypeScript 版本const name: string = "TypeScript Developer";const age = 25; // 类型推断 console.log(`Name: ${name}, Age: ${age}`);实战练习
实现安全的除法函数
入门
编写一个除法函数,当除数为 0 时返回错误
初始代码
Go
1package main2 3import (4 "errors"5 "fmt"6)7 8// divide 执行除法运算,除数为 0 时返回错误9func divide(a, b float64) (float64, error) {10 // 请补全实现11}12 13func main() {14 result, err := divide(10, 2)15 if err != nil {16 fmt.Println("Error:", err)17 return18 }19 fmt.Println("Result:", result)20}查看参考答案
Go
1package main2 3import (4 "errors"5 "fmt"6)7 8func divide(a, b float64) (float64, error) {9 if b == 0 {10 return 0, errors.New("division by zero")11 }12 return a / b, nil13}14 15func main() {16 result, err := divide(10, 2)17 if err != nil {18 fmt.Println("Error:", err)19 return20 }21 fmt.Println("Result:", result)22}