1.通用占位符
package main
import "fmt"
type simple struct {
value int
}
func main() {
var vv simple
vvv := new(simple)
// 通用占位符
fmt.Println("-- 通用占位符 --")
fmt.Printf("默认格式的值:%v \n", vv)
fmt.Printf("包含字段名的值:%+v \n", vv)
fmt.Printf("go语法表示的值:%#v \n", vv)
fmt.Printf("go语法表示的类型:%T \n", vv)
fmt.Printf("输出字面上的百分号:%%10 \n")
// 通用占位符打印指针
fmt.Println("-- 通用占位符打印指针 --")
fmt.Printf("默认格式的值:%v \n", vvv)
fmt.Printf("包含字段名的值:%+v \n", vvv)
fmt.Printf("go语法表示的值:%#v \n", vvv)
fmt.Printf("go语法表示的类型:%T \n", vvv)
fmt.Printf("输出字面上的百分号:%%10 \n")
}
输出:
2.整数占位符
package main
import "fmt"
func main() {
//整数占位符
v1 := 10
v2 := 20170 //今字的码点值
fmt.Printf("二进制:%b \n", v1)
fmt.Printf("uincode码点值转字符:%c \n", v2)
fmt.Printf("十进制:%d \n", v1)
fmt.Printf("八进制:%o \n", v1)
fmt.Printf("0o为前缀的八进制: %O \n", v1)
fmt.Printf("用单引号把字面值包起来: %q \n", v2)
fmt.Printf("十六进制: %x \n", v1)
fmt.Printf("大写十六进制: %X \n", v1)
fmt.Printf("Unicode格式: %U \n", v2)
//宽度设置
fmt.Printf("%v的二进制表示为:%b;go 语法表示为:%#b;指定二进制的宽度为8位,不足的补0:%08b \n", v1, v1, v1, v1)
fmt.Printf("%v的十六进制表示为:%x; go语法表示,定宽度为8,不足的补0:%#08x \n", v1, v1, v1)
fmt.Printf("%v的字符为:%c;指定宽度为5位,不足5位的补空格:%5c\n", v2, v2, v2)
}
输出:
3.浮点类型
package main
import "fmt"
func main() {
var f1 float64 = 123.789
var f2 float64 = 12345678910.78999
fmt.Printf("指数为二的幂的无小数科学计数法:%b \n", f1)
fmt.Printf("科学计数法:%e \n", f1)
fmt.Printf("科学计数法大写:%E \n", f1)
fmt.Printf("有小数点无指数,也就是常规的浮点数格式。默认宽度和精度:%f \n", f1)
fmt.Printf("宽度9默认精度:%9f \n", f1)
fmt.Printf("默认宽度,精度保留2位小数%.2f \n", f1)
fmt.Printf("宽度为9,精度保留2位小数%9.2f \n", f1)
fmt.Printf("宽度为9,精度保留0位小数%9.f \n", f1)
fmt.Printf("根据情况自动选择 %%e 或者 %%f 来输出,来产生更紧凑的输出(末位无0):%g %g \n", f1, f2)
fmt.Printf("根据情况自动选择 %%E 或者 %%f 来输出,来产生更紧凑的输出(末位无0):%G %G\n", f1, f2)
fmt.Printf("用十六进制的方式来表示:%x \n", f1)
fmt.Printf("用十六进制的方式来表示,大写:%X \n", f1)
}
输出:
4.字符串
package main
import "fmt"
func main() {
var str = "今天是个好日子"
fmt.Printf("描述一下今天:%s \n", str)
fmt.Printf("描述一下今天(带引号):%q \n", str)
fmt.Printf("字符串的十六进制表示,每两个字母为一个byte:%x \n", str)
fmt.Printf("字符串的十六进制表示,空格作为分隔符:% x \n", str)
}
输出: