格式化输出
本课属于 Coddy GO 学习旅程的“基础知识”单元。第 29 课,共 109 课。
让我们学习如何在 Go 中使用 fmt.Printf() 函数设置输出格式。这个函数可以通过占位符按指定格式显示值。
首先,我们来创建一个程序,使用占位符格式化不同的数据类型:
name := "Gopher"
age := 5
height := 1.5
fmt.Printf("Name: %s, Age: %d, Height: %.1f\n", name, age, height)运行这段代码后,屏幕上会显示文本 "Name: Gopher, Age: 5, Height: 1.5"。字符串中的占位符会被变量的实际值替换。
让我们了解每个占位符的作用:
// %s 会被替换为字符串值(name)
// %d 会被替换为整数值(age)
// %.1f 会被替换为保留 1 位小数的浮点数值(height)
// %t 会被替换为布尔值(true 或 false)
// %c 会被替换为单个字符(如 'A' 这样的 rune)格式字符串末尾的 \n 是一个转义字符,它会将光标移到新的一行,就像按下 Enter 一样。它必须放在引号内,并且结尾引号前不能有空格,否则输出中会出现多余的空格。
fmt.Printf() 函数会将每个占位符替换为格式字符串后面提供的对应变量。变量的顺序必须与占位符的顺序一致。
现在我们再试一个使用不同格式类型的示例:
pi := 3.14159
percentage := 0.75
letter := 'A'
fmt.Printf("Pi: %.2f, Percentage: %.1f%%, Letter: %c\n", pi, percentage*100, letter)运行这段代码后,屏幕上会显示文本 "Pi: 3.14, Percentage: 75.0%, Letter: A"。注意,%.2f 只显示 pi 的 2 位小数,我们还会将百分比乘以 100,把它显示为百分比值。
还要注意格式字符串中的 %%。这是一个特殊的转义序列,用于输出字面上的 % 符号。单个 % 会被视为占位符的开头,因此每当我们想在输出中显示实际的百分号时,就使用 %%。
挑战
简单在这个挑战中,你将练习在 Go 中使用 `fmt.Printf()` 函数进行格式化输出。
你有一些产品信息,需要使用格式动词按指定格式显示。变量已经为你定义好了。
你的任务是使用 `fmt.Printf()` 和恰当的格式动词来显示产品信息:
- 字符串使用 `%s`
- 整数使用 `%d`
- 保留 2 位小数的浮点数使用 `%.2f`
- 布尔值使用 `%t`
显示的产品信息必须与预期输出完全一致。
亲手试试
package main
import "fmt"
func main() {
// 商品信息
productName := "Wireless Headphones"
productPrice := 79.99
productInStock := true
productID := 12345
// TODO: 使用 fmt.Printf() 和格式化占位符显示商品信息:
// Product: Wireless Headphones (ID: 12345)
// Price: $79.99
// In Stock: true
//
// 提示:用 %s 表示字符串,%d 表示整数,%.2f 表示浮点数,%t 表示布尔值
// 记得在每行末尾添加 \n,以确保格式正确
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Go 在线编译器