有没有转门做乐器演奏的网站宿迁手机网站开发公司电话
Go 语言提供了强大且灵活的格式化输入输出功能,主要通过 fmt 包实现。下面是详细的分类介绍和代码示例。
一、格式化输出
1. fmt.Print、fmt.Println 和 fmt.Printf
fmt.Print:输出内容,不自动换行。fmt.Println:输出内容,自动换行,并在多个参数之间添加空格。fmt.Printf:使用格式化字符串输出,类似 C 语言的printf。
示例代码:
package main
import "fmt"
func main() {name := "Alice"age := 25fmt.Print("Name: ", name, ", Age: ", age) // 不换行fmt.Println("Name:", name, "Age:", age) // 自动换行fmt.Printf("Name: %s, Age: %d\n", name, age) // 格式化输出
}
输出结果:
Name: Alice, Age: 25Name: Alice Age: 25
Name: Alice, Age: 25
2. 格式化占位符
fmt.Printf 支持多种占位符,常用如下:
| 占位符 | 说明 |
|---|---|
%v | 默认格式输出 |
%+v | 结构体输出带字段名 |
%#v | Go 语法格式的值 |
%T | 输出值的类型 |
%t | 布尔值(true/false) |
%d | 十进制整数 |
%b | 二进制整数 |
%x | 十六进制整数(小写) |
%X | 十六进制整数(大写) |
%f | 浮点数 |
%s | 字符串 |
%p | 指针地址 |
| 示例: |
package main
import "fmt"
func main() {a := 42b := 3.14c := trued := "hello"fmt.Printf("a: %d, b: %f, c: %t, d: %s\n", a, b, c, d)fmt.Printf("Type of a: %T\n", a)
}
输出:
a: 42, b: 3.140000, c: true, d: hello
Type of a: int
二、格式化输入
1. fmt.Scan、fmt.Scanln 和 fmt.Scanf
fmt.Scan:从标准输入读取数据,以空格分隔。fmt.Scanln:类似Scan,但读取到换行符时停止。fmt.Scanf:按格式化字符串读取输入。
示例代码:
package main
import "fmt"
func main() {var name stringvar age intfmt.Print("Enter your name and age: ")fmt.Scanln(&name, &age) // 读取输入fmt.Printf("Name: %s, Age: %d\n", name, age)
}
运行示例:
Enter your name and age: Alice 25
Name: Alice, Age: 25
2. fmt.Scanf 示例
package main
import "fmt"
func main() {var name stringvar age intfmt.Print("Enter name and age (format: name age): ")fmt.Scanf("%s %d", &name, &age)fmt.Printf("Name: %s, Age: %d\n", name, age)
}
运行示例:
Enter name and age (format: name age): Bob 30
Name: Bob, Age: 30
三、从字符串中格式化输入输出
1. fmt.Sscanf:从字符串中解析
package main
import "fmt"
func main() {data := "Alice 25"var name stringvar age intfmt.Sscanf(data, "%s %d", &name, &age)fmt.Printf("Name: %s, Age: %d\n", name, age)
}
输出:
Name: Alice, Age: 25
2. fmt.Sprintf:格式化到字符串
package main
import "fmt"
func main() {name := "Charlie"age := 40result := fmt.Sprintf("Name: %s, Age: %d", name, age)fmt.Println(result)
}
输出:
Name: Charlie, Age: 40
四、总结
| 功能 | 函数/方法 | 说明 |
|---|---|---|
| 输出 | fmt.Print | 不换行输出 |
fmt.Println | 自动换行输出 | |
fmt.Printf | 格式化输出 | |
| 输入 | fmt.Scan | 从标准输入读取 |
fmt.Scanln | 读取到换行符 | |
fmt.Scanf | 按格式读取输入 | |
| 字符串操作 | fmt.Sscanf | 从字符串解析 |
fmt.Sprintf | 格式化到字符串 |
通过 fmt 包,Go 提供了强大而灵活的输入输出功能,适用于控制台交互、日志记录、字符串解析等多种场景。
如需更详细的文档,可以参考 Go 官方文档。
