初始提交

This commit is contained in:
2025-08-24 01:01:26 +08:00
commit e51feb1296
35 changed files with 9348 additions and 0 deletions

View File

@@ -0,0 +1,119 @@
/*
01-hello-world.go - Go 语言入门第一课
学习目标:
1. 了解 Go 程序的基本结构
2. 理解包package的概念
3. 学会使用 fmt 包进行输出
4. 掌握 main 函数的作用
知识点:
- package 声明
- import 导入
- main 函数
- fmt.Println 输出函数
*/
// 每个 Go 文件都必须以 package 声明开始
// main 包是特殊的包,表示这是一个可执行程序
package main
// import 用于导入其他包
// fmt 包提供了格式化输入输出的功能
import "fmt"
// main 函数是程序的入口点
// 当运行程序时,会自动执行 main 函数
func main() {
// fmt.Println 用于输出文本并自动换行
fmt.Println("Hello, World!")
fmt.Println("欢迎来到 Go 语言的世界!")
// 你也可以使用 fmt.Print不换行或 fmt.Printf格式化输出
fmt.Print("这是 ")
fmt.Print("同一行的输出\n") // \n 表示换行
// fmt.Printf 支持格式化输出,类似于 C 语言的 printf
name := "Go"
version := 1.21
fmt.Printf("我正在学习 %s 语言,版本是 %.2f\n", name, version)
// 多种输出方式的演示
demonstrateOutput()
}
// demonstrateOutput 演示不同的输出方式
func demonstrateOutput() {
fmt.Println("\n=== 输出方式演示 ===")
// 1. 基本输出
fmt.Println("1. fmt.Println - 输出并换行")
// 2. 不换行输出
fmt.Print("2. fmt.Print - ")
fmt.Print("不换行输出")
fmt.Print("\n") // 手动换行
// 3. 格式化输出
age := 25
height := 175.5
isStudent := true
fmt.Printf("3. fmt.Printf - 格式化输出:\n")
fmt.Printf(" 年龄: %d 岁\n", age) // %d 表示整数
fmt.Printf(" 身高: %.1f cm\n", height) // %.1f 表示保留1位小数的浮点数
fmt.Printf(" 是学生: %t\n", isStudent) // %t 表示布尔值
fmt.Printf(" 十六进制年龄: %x\n", age) // %x 表示十六进制
fmt.Printf(" 八进制年龄: %o\n", age) // %o 表示八进制
// 4. 通用格式符 %v
fmt.Printf("4. 通用格式符 %%v:\n")
fmt.Printf(" 年龄: %v, 身高: %v, 是学生: %v\n", age, height, isStudent)
// 5. 详细格式符 %+v 和 %#v主要用于结构体
person := struct {
Name string
Age int
}{"张三", 30}
fmt.Printf("5. 结构体输出:\n")
fmt.Printf(" %%v: %v\n", person) // 简单格式
fmt.Printf(" %%+v: %+v\n", person) // 包含字段名
fmt.Printf(" %%#v: %#v\n", person) // Go 语法格式
}
/*
运行这个程序:
1. 在终端中进入 01-basics 目录
2. 执行命令go run 01-hello-world.go
预期输出:
Hello, World!
欢迎来到 Go 语言的世界!
这是 同一行的输出
我正在学习 Go 语言,版本是 1.21
=== 输出方式演示 ===
1. fmt.Println - 输出并换行
2. fmt.Print - 不换行输出
3. fmt.Printf - 格式化输出:
年龄: 25 岁
身高: 175.5 cm
是学生: true
十六进制年龄: 19
八进制年龄: 31
4. 通用格式符 %v:
年龄: 25, 身高: 175.5, 是学生: true
5. 结构体输出:
%v: {张三 30}
%+v: {Name:张三 Age:30}
%#v: struct { Name string; Age int }{Name:"张三", Age:30}
学习要点:
1. Go 程序必须有 package 声明
2. main 包表示可执行程序
3. main 函数是程序入口
4. 使用 import 导入需要的包
5. fmt 包提供了丰富的输出功能
6. 注释使用 // 或
*/