【Golang】细数go语言中的各种占位符
占位符 | 作用 |
---|---|
%s | 正常输出字符串 |
%5s | 正常输出字符串且最小宽度为5,不足前面补充空格 |
%-5s | 正常输出字符串且最小宽度为5,不足后面补充空格 |
%q | 输出字符串,并加引号 |
%#q | 输出字符串,并加反引号 |
%x | 输出小写16进制 |
% x | 输出带空格的小写16进制 |
% X | 输出带空格的大写16进制 |
%d | 输出数字 |
%5d | 至少占5个字符,不足前面补空格 |
%-5d | 至少占5个字符,不足后面补空格 |
%b | 输出整型的二进制 |
%v | 输出结构体每个字段的值 |
%#v | 输出结构体每个字段的字段名和值 |
%+v | 输出结构体每个字段的字段名和值 |
%p | 输出结构体的指针 |
%t | 输出boolean |
%f | 输出float 类型 默认6位小数不足补零 超过6位5舍6入 |
%.3f | 输出float 类型取3位小数 4舍5入 |
package main
import "fmt"
type point struct {
x,y int
}
func main() {
s := "test string"
p := &point{
x: 9,
y: 8,
}
fmt.Println("-------字符串相关----------")
fmt.Printf("%s%s\n","%s正常输出字符串 ->",s)
fmt.Printf("%s%5s\n","%5s正常输出字符串且最小宽度为5,不足前面补充空格 ->","vic")
fmt.Printf("%5s%-5s|\n","%5s正常输出字符串且最小宽度为5,不足后面补充空格 ->","vic")
fmt.Printf("%s%q\n","%q输出字符串,并加引号 ->",s)
fmt.Printf("%s%#q\n","%#q输出字符串,并加反引号 ->",s)
fmt.Printf("%s%x\n","%x输出小写16进制 ->",s)
fmt.Printf("%s% x\n","% x输出带空格的小写16进制 ->",s)
fmt.Printf("%s% X\n","% X输出带空格的大写16进制 ->",s)
fmt.Println("-------数字相关----------")
fmt.Printf("%s%d\n","%d 输出数字 ->",1)
fmt.Printf("%s%5d\n","%5d 至少占5个字符,不足前面补空格 ->",1)
fmt.Printf("%s%-5d|\n","%-5d 至少占5个字符,不足后面补空格 ->",1)
fmt.Printf("%s%5d\n","%5d 至少占5个字符,不足前面补空格 ->",100000000)
fmt.Printf("%s%b\n","%b 输出整形的二进制 ->",10976)
fmt.Println("-------结构体相关----------")
fmt.Printf("%s%v\n","%v 输出结构体每个字段的值 ->",p)
fmt.Printf("%s%#v\n","%#v 输出结构体每个字段的字段名和值 ->",p)
fmt.Printf("%s%+v\n","%+v 输出结构体每个字段的字段名和值 ->",p)
fmt.Printf("%s%p\n","%p 输出结构体的指针 ->",p)
fmt.Println("-------bool类型相关----------")
fmt.Printf("%s%t\n","%t 输出boolean 类型 ->",true)
fmt.Println("-------float类型相关----------")
fmt.Printf("%s%f\n","%f 输出float 类型 默认6位小数不足补零 ->",1.001)
fmt.Printf("%s%f\n","%f 输出float 类型 超过6位小数5舍6入->",1.0010005)
fmt.Printf("%s%f\n","%f 输出float 类型 ->",1.0010006)
fmt.Printf("%s%.3f\n","%.3t 输出float 类型取3位小数 4舍5入 ->",1.0014006)
fmt.Printf("%s%.3f\n","%.3t 输出float 类型取3位小数 ->",1.0016006)
}
输出结果
-------字符串相关----------
%s正常输出字符串 ->test string
%5s正常输出字符串且最小宽度为5,不足前面补充空格 -> vic
%5s正常输出字符串且最小宽度为5,不足后面补充空格 ->vic |
%q输出字符串,并加引号 ->"test string"
%#q输出字符串,并加反引号 ->`test string`
%x输出小写16进制 ->7465737420737472696e67
% x输出带空格的小写16进制 ->74 65 73 74 20 73 74 72 69 6e 67
% X输出带空格的大写16禁止 ->74 65 73 74 20 73 74 72 69 6E 67
-------数字相关----------
%d 输出数字 ->1
%5d 至少占5个字符,不足前面补空格 -> 1
%-5d 至少占5个字符,不足后面补空格 ->1 |
%5d 至少占5个字符,不足前面补空格 ->100000000
%-05d 至少占5个字符,不足前面补充0 ->00001
%b 输出整形的二进制 ->10101011100000
-------结构体相关----------
%v 输出结构体每个字段的值 ->&{9 8}
%#v 输出结构体每个字段的字段名和值 ->&main.point{x:9, y:8}
%+v 输出结构体每个字段的字段名和值 ->&{x:9 y:8}
%p 输出结构体的指针 ->0xc00000a100
-------bool类型相关----------
%t 输出boolean 类型 ->true
-------float类型相关----------
%f 输出float 类型 默认6位小数不足补零 ->1.001000
%f 输出float 类型 超过6位小数5舍6入->1.001000
%f 输出float 类型 ->1.001001
%.3t 输出float 类型取3位小数 ->1.001
%.3t 输出float 类型取3位小数 ->1.002