Printf函数的基本用法
package main
import "fmt"
func main() {
name := "John"
age := 25
fmt.Printf("My name is %s and I'm %d years old\n", name, age)
}
Printf函数是GO语言中最常用的格式化输出函数,它可以将指定格式的数据输出到标准输出设备或者其他的输出设备上。Printf函数中的格式化字符串以"%"为前缀,后面跟着一个或多个格式化指示符。例如,在上面的例子中,"%s"指示一个字符串类型,"%d"指示一个十进制整数类型,而且每个指示符都要与对应的变量一一对应。 Printf函数可以输出各种类型的值,并且可以按照设定的格式进行显示。其中,常用的格式化指示符如下:
- %s: 字符串类型
- %d: 十进制整型
- %f: 浮点数类型
- %x: 十六进制整型
- %X: 十六进制整型(大写)
- %o: 八进制整型
- %c: 字符类型
- %p: 指针类型
- %T: 显示数据类型
Printf函数的高级用法
除了基本用法,Printf函数还有很多高级用法,例如颜色输出、对齐操作、填充操作等。
1、颜色输出:
package main
import "fmt"
func main() {
fmt.Printf("\033[31m This is a red text \033[0m\n")
}
在Linux和MacOS终端下,可以使用ANSI Escape Sequence控制终端输出颜色。例如,上述代码中的"\033[31m"表示设置字体颜色为红色,"\033[0m"表示恢复字体颜色为默认颜色。
2、对齐操作:
package main
import "fmt"
func main() {
fmt.Printf("|%10s|%10s|\n", "name", "age")
fmt.Printf("|%10s|%10d|\n", "John", 25)
}
Printf函数还可以进行对齐操作,比如上述代码中的"%10s"表示宽度为10个字符的字符串类型,"%10d"表示宽度为10个字符的十进制整数类型。如果内容长度不足10个字符,将会在左侧填充空格。
3、填充操作:
package main
import "fmt"
func main() {
fmt.Printf("|%-10s|%-10s|\n", "name", "age")
fmt.Printf("|%-10s|%-10d|\n", "John", 25)
}
与对齐操作相反,填充操作使用"-"号表示填充在右侧而不是左侧。例如,上述代码中的"%-10s"表示宽度为10个字符的字符串类型,左侧填充空格。
Printf格式化字符串的高级应用
Printf格式化字符串还有很多高级用法,例如使用参数索引、使用宽度和精度等。
1、使用参数索引:
package main
import "fmt"
func main() {
name := "John"
age := 25
fmt.Printf("%[2]d - %[1]s\n", name, age)
}
Printf格式化字符串中,可以使用"%"后面加上参数索引来指定输出参数的位置。例如,上述代码中的"%[2]d"表示输出第2个参数(age)的十进制整数类型,"%[1]s"表示输出第1个参数(name)的字符串类型。这种方式可以让代码更加清晰明了。
2、使用宽度和精度:
package main
import "fmt"
func main() {
f := 3.1415926
fmt.Printf("%10.2f\n", f)
}
Printf格式化字符串中,可以使用宽度指定参数输出的最小字符数,使用精度指定浮点型参数输出的小数点后面保留的位数。例如,上述代码中的"%10.2f"表示输出浮点型参数,最少占10个字符,保留2位小数。
小结
本文介绍了GO语言中Printf函数的基本用法和高级用法。通过对Printf函数的介绍,可以更加深入地理解GO语言中格式化字符串的使用方法,从而更加方便地进行代码编写。