Golang占位符

作者: adm 分类: go 发布时间: 2024-05-29

fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf. 格式“占位符”衍生自C,但比C更简单。

占位符:
一般:
%v 相应值的默认格式。在打印结构体时,“加号”标记(%+v)会添加字段名
%#v 相应值的Go语法表示
%T 相应值的类型的Go语法表示
%% 字面上的百分号,并非值的占位符

布尔:
%t 单词 true 或 false。

整数:
%b 二进制表示
%c 相应Unicode码点所表示的字符
%d 十进制表示
%o 八进制表示
%q 单引号围绕的字符字面值,由Go语法安全地转义
%x 十六进制表示,字母形式为小写 a-f
%X 十六进制表示,字母形式为大写 A-F
%U Unicode格式:U+1234,等同于 “U+%04X”

浮点数及其复合构成:
%b 无小数部分的,指数为二的幂的科学计数法,与 strconv.FormatFloat的 ‘b’ 转换格式一致。例如 -123456p-78
%e 科学计数法,例如 -1234.456e+78
%E 科学计数法,例如 -1234.456E+78
%f 有小数点而无指数,例如 123.456
%g 根据情况选择 %e 或 %f 以产生更紧凑的(无末尾的0)输出
%G 根据情况选择 %E 或 %f 以产生更紧凑的(无末尾的0)输出

字符串与字节切片:
%s 字符串或切片的无解译字节
%q 双引号围绕的字符串,由Go语法安全地转义
%x 十六进制,小写字母,每字节两个字符
%X 十六进制,大写字母,每字节两个字符

指针:
%p 十六进制表示,前缀 0x

ep:

package main
 
import "fmt"
 
func main() {
	var str string
	var person struct {
		name string
		age  int
	}
	person.name = "老王"
	person.age = 50
 
	str = "hello world"
	fmt.Println("====一般占位符====")
	fmt.Printf("%v\n", str)     //hello world
	fmt.Printf("%v\n", person)  //{老王 50}
	fmt.Printf("%+v\n", person) //{name:老王 age:50}
	fmt.Printf("%#v\n", str)    //"hello world"
	fmt.Printf("%#v\n", true)   //true
	fmt.Printf("%T\n", str)     //string
	fmt.Printf("%T\n", true)    //bool
	fmt.Printf("%%\n")          //%
	fmt.Println("====布尔====")
	fmt.Printf("%t\n", true)
	fmt.Println("====整数====")
	fmt.Printf("%b\n", 65) //1000001
	fmt.Printf("%c\n", 65) //A
	fmt.Printf("%d\n", 65) //65
	fmt.Printf("%o\n", 65) //101
	fmt.Printf("%q\n", 65) //'A'
	fmt.Printf("%x\n", 31) //1f
	fmt.Printf("%X\n", 31) //1F
	fmt.Printf("%U\n", 31) //U+001F
	fmt.Println("====浮点数及其复合构成====")
	fmt.Printf("%b\n", 10.5) //5910974510923776p-49
	fmt.Printf("%e\n", 10.5) //1.050000e+01
	fmt.Printf("%E\n", 10.5) //1.050000E+01
	fmt.Printf("%f\n", 10.5) //10.500000
	fmt.Printf("%g\n", 10.5) //10.5
	fmt.Printf("%G\n", 10.5) //10.5
	fmt.Println("====字符串与字节切片====")
	fmt.Printf("%s\n", "abc") //abc
	fmt.Printf("%q\n", "abc") //"abc"
	fmt.Printf("%x\n", "abc") //616263
	fmt.Printf("%X\n", "abc") //616263
	fmt.Println("====指针====")
	fmt.Printf("%p\n", &str) //0xc0000441f0
}

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!