【Go】12、golang格式化输出

1、普通占位符
输出格式输出内容
%v值的默认格式表示
%+v类似 %v,但输出结构体时会添加字段名
%#v值的 Go 语法表示
值的类型的 Go 语法表示

package main

import "fmt"

// 定义结构体
type WebSite struct {
	Name string
}

func main() {
	// %v var
	fmt.Printf("\"hello\": %v\n", "hello")
	site := WebSite{Name: "123"}
	fmt.Printf("site: %v\n", site)
	fmt.Printf("site: %#v\n", site)
	fmt.Printf("site: %T\n", site)
	fmt.Printf("site: %v+\n", site)
}

# 输出结果
    site: {123}
    site: main.WebSite{Name:"123"}
    site: main.WebSite
    site: {123}+
2、布尔类型占位符
输出格式输出内容
%t单词 true 或 false
func test2() {
	// 布尔类型占位符
	b := true
	fmt.Printf("b: %t\n", b)
	c := false
	fmt.Printf("c: %t\n", c)
}
func main() {
	test2()
}
# 输出结果
    b: true
    c: false
3、整数占位符
输出格式输出内容举例输出
%b表示为二进制
Printf("%b", 5)
101
%c该值对应的 unicode 码值Printf("%c", 0x4E2D)
%d表示为十进制Printf("%d", 0x12)18
%o表示为八进制Printf("%o", 10)12
%q该值对应的单引号括起来的Go语言语法字符字面值,必要时会采用安全的转义表示Printf("%q", 0x4E2D)'中'
%x表示为十六进制,使用 a~fPrintf("%x", 13)d
%X表示为十六进制,使用 A~FPrintf("%X ", 12)
%U表示为 unicode 格式:U+1234,等价于 U+%04XPrintf("%U", 0x4E2D)U+4E2D
4、浮点数和复数的组成部分(实部和虚部)
输出格式输出内容举例
%b无小数部分、二进制指数的科学计数法,如 -123456p-78
%e(=%.6e)有 6 位小数部分的科学计数法,如 -1234.456e+78Printf("%e", 10.2)
%E科学计数法,如 -1234.456E+78Printf("%E", 10.2)
%f (=%.6f)有 6 位小数部分,如 123.456123Printf("%f", 10.2)
%F等价于 %fPrintf("%F", 10.2)
%g根据实际情况采用 %e 或 %f 以产生更紧凑的(无末尾的0)输出Printf("%g", 10.20)
%G根据实际情况采用 %E 或 %F以产生更紧凑的(无末尾的0)输出Printf("%G", 10.20+2i)
func test4() {
	i := 10.2
	fmt.Printf("i: %e\n", i)
	fmt.Printf("i: %E\n", i)
	fmt.Printf("i: %f\n", i)
	fmt.Printf("i: %F\n", i)
	i = 10.20
	fmt.Printf("i: %g\n", i)
	fmt.Printf("i: %v\n", 10.20+2i)
}

func main() {
	test4()
}
# 输出结果
    i: 1.020000e+01
    i: 1.020000E+01
    i: 10.200000
    i: 10.200000
    i: 10.2
    i: (10.2+2i)
5、字符串与字节切片
输出格式输出内容
%s直接输出字符串或者字节数组[]byte
%q该值对应的双引号括起来的Go语法字符串字面值,必要时会采用安全的转义表示
%x每个字节用两字符十六进制数表示,使用 a~f
%X每个字节用两字符十六进制数表示,使用 A~F
func test5() {
	// 字符串占位符
	a := []byte("多渴望")
	fmt.Printf("a: %s\n", a)
	b := "多渴望"
	fmt.Printf("b: %q\n", b)
	c := "golang"
	fmt.Printf("c: %x\n", c)
	fmt.Printf("c: %X\n", c)
}

func main() {
	test5()
}

# 输出结果:
    a: 多渴望
    b: "多渴望"
    c: 676f6c616e67
    c: 676F6C616E67
6、指针
占位符说明举例
%p十六进制表示,前缀0x4f57f0Printf("%p", &site)
func test6() {
	// 指针占位符
	i := 100
	p := &i
	fmt.Printf("p: %p\n", p)
}

func main() {
	test6()
}
# 输出结果:
    p: 0xc0000aa058
posted @   郭祺迦  阅读(234)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示