Files
golang/golang-learning/01-basics/01-hello-world.go
2025-08-24 01:01:26 +08:00

119 lines
3.3 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
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. 注释使用 // 或
*/