Go语言中占位符格式化符号的实现

作者:

文章目录
  • 占位符 描述 举例 结果 %v 默认格式的值 fmt.Printf("%v", User{Name: "小明", Age: 18}) {小明 18} %+v 如果打印的是结构体,额外打印字段名 fmt.Printf("%+v", User{Name: "小明", Age: 18}) {Name:小明 Age:18} %#v 对应值的 Go 语法表示 fmt.Printf("%#v", User{Name: "小明", Age: 18}) main.User{Name:"小明", Age:18} %T 对应值类型的 Go 语法表示 fmt.Printf("%T", User{Name: "小明", Age: 18}) main.User %% 非占位符,而是字面上的 % fmt.Printf("%%") % package main import ( “fmt” ) // 定义一个结构体类型 type User struct { Name string Age int } func main() { u := User{Name: “小明”, Age: 18} fmt.Println(“1. %v(默认格式)”) fmt.Printf(“输出: %vnn”, u) // 输出: {小明 18} fmt.Println(“2. %+v(结构体带字段名)”) fmt.Printf(“输出: %+vnn”, u) // 输出: {Name:小明 Age:18} fmt.Println(“3. %#v(Go 语法表示)”) fmt.Printf(“输出: %#vnn”, u) // 输出: main.User{Name:”小明”, Age:18} fmt.Println(“4. %T(类型表示)”) fmt.Printf(“输出: %Tnn”, u) // 输出: main.User fmt.Println(“5. %%(百分号字面量)”) fmt.Printf(“输出: 100%% 成功n”) // 输出: 100% 成功 }
  • 占位符 描述 举例 结果 %t 对应值 true 或 false fmt.Printf("%t", false) false
  • 占位符 描述 举例 结果 %b 二进制的形式 fmt.Printf("%b", 2) 10 %c 对应的Unicode码位表示的字符 fmt.Printf("%c", 65) A %d 十进制的形式 fmt.Printf("%d", 10) 10 %5d 十进制的形式,长度为5,长度不够用空格来补 fmt.Printf("%5d", 123) __123,由于空格显示不出来,用下划线表示空格 %o 八进制的形式 fmt.Printf("%o", 10) 12 %O 前缀为0o的八进制的形式 fmt.Printf("%O", 10) 0o12 %q 使用 Go 语法安全转义的单引号字符文字 fmt.Printf("%q", 65) 'A' %x 十六进制的形式,字母部分用小写字母 a-f 表示 fmt.Printf("%x", 12) c %X 十六进制的形式,字母部分用大写字母 A-F 表示 fmt.Printf("%X", 12) C %U Unicode 格式 fmt.Printf("%U", 15) U+000F
  • 占位符 描述 举例 结果 %f 打印小数,默认的长度和小数,小数精度为 6 位 fmt.Printf("%f", 1.50000000001) 1.500000 %5f 长度为 5(整数和小数点以及小数加起来的长度),默认小数精度6位,长度不够则用空格来补 fmt.Printf("%10f", 0.1) __0.100000,由于空格显示不出来,用下划线表示空格 %.3f 默认长度,小数精度为 3 fmt.Printf("%.3f", 0.1) 0.100 %7.3f 长度为 7(整数和小数点以及小数加起来的长度),小树精度为 3 fmt.Printf("%7.3f", 0.1) __ 0.100,由于空格显示不出来,用下划线表示空格
  • 占位符 描述 举例 结果 %s 输出 string 类型或 []byte 类型的字符串形式 fmt.Printf("%s, %s", "haha", []byte("haha")) haha, haha %q 加上双引号的字符串 fmt.Printf("%q", "haha") "haha" %x 十六进制的形式,字母用小写表示,每个字节两个字符 fmt.Printf("%x", "hello") 68656c6c6f %X 十六进制的形式,字母用大写表示,每个字节两个字符 fmt.Printf("%X", "hello") 68656C6C6F package main import ( “fmt” ) func main() { s := “haha” b := []byte(“haha”) fmt.Println(“1. %s:输出字符串或 []byte 的字符串表示”) fmt.Printf(“输出: %s, %snn”, s, b) // 输出: haha, haha fmt.Println(“2. %q:字符串带双引号”) fmt.Printf(“输出: %qnn”, s) // 输出: “haha” fmt.Println(“3. %x:十六进制小写(每字节两个字符)”) fmt.Printf(“输出: %xnn”, “hello”) // 输出: 68656c6c6f fmt.Println(“4. %X:十六进制大写(每字节两个字符)”) fmt.Printf(“输出: %Xnn”, “hello”) // 输出: 68656C6C6F }
  • 占位符 描述 举例 结果 %p 以16进制表示的第0个元素的地址,前缀为0x fmt.Printf("%p", []int{1, 2, 3}) 0xc000010120
  • 占位符 描述 举例 结果 %p 16进制表示,前缀为0x fmt.Printf("%p", &User{Name: "小明"}) 0xc000008078 到此这篇关于Go语言中占位符格式化符号的实现的文章就介绍到这了,更多相关Go 占位符格式化符号内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 您可能感兴趣的文章: Go语言中的格式化输出占位符的用法详解 Go语言中的格式化占位符的实现示例
  • 目录
    • 普通占位符
    • 布尔
    • 整数
    • 浮点数
    • 字符串和字节切片
    • 切片
    • 指针

    占位符 描述 举例 结果
    %v 默认格式的值 fmt.Printf("%v", User{Name: "小明", Age: 18}) {小明 18}
    %+v 如果打印的是结构体,额外打印字段名 fmt.Printf("%+v", User{Name: "小明", Age: 18}) {Name:小明 Age:18}
    %#v 对应值的 Go 语法表示 fmt.Printf("%#v", User{Name: "小明", Age: 18}) main.User{Name:"小明", Age:18}
    %T 对应值类型的 Go 语法表示 fmt.Printf("%T", User{Name: "小明", Age: 18}) main.User
    %% 非占位符,而是字面上的 % fmt.Printf("%%") %
    package main
    
    import (
    	"fmt"
    )
    
    // 定义一个结构体类型
    type User struct {
    	Name string
    	Age  int
    }
    
    func main() {
    	u := User{Name: "小明", Age: 18}
    
    	fmt.Println("1. %v(默认格式)")
    	fmt.Printf("输出: %vnn", u)
    	// 输出: {小明 18}
    
    	fmt.Println("2. %+v(结构体带字段名)")
    	fmt.Printf("输出: %+vnn", u)
    	// 输出: {Name:小明 Age:18}
    
    	fmt.Println("3. %#v(Go 语法表示)")
    	fmt.Printf("输出: %#vnn", u)
    	// 输出: main.User{Name:"小明", Age:18}
    
    	fmt.Println("4. %T(类型表示)")
    	fmt.Printf("输出: %Tnn", u)
    	// 输出: main.User
    
    	fmt.Println("5. %%(百分号字面量)")
    	fmt.Printf("输出: 100%% 成功n")
    	// 输出: 100% 成功
    }
    

    占位符 描述 举例 结果
    %t 对应值 true 或 false fmt.Printf("%t", false) false

    占位符 描述 举例 结果
    %b 二进制的形式 fmt.Printf("%b", 2) 10
    %c 对应的Unicode码位表示的字符 fmt.Printf("%c", 65) A
    %d 十进制的形式 fmt.Printf("%d", 10) 10
    %5d 十进制的形式,长度为5,长度不够用空格来补 fmt.Printf("%5d", 123) __123,由于空格显示不出来,用下划线表示空格
    %o 八进制的形式 fmt.Printf("%o", 10) 12
    %O 前缀为0o的八进制的形式 fmt.Printf("%O", 10) 0o12
    %q 使用 Go 语法安全转义的单引号字符文字 fmt.Printf("%q", 65) 'A'
    %x 十六进制的形式,字母部分用小写字母 a-f 表示 fmt.Printf("%x", 12) c
    %X 十六进制的形式,字母部分用大写字母 A-F 表示 fmt.Printf("%X", 12) C
    %U Unicode 格式 fmt.Printf("%U", 15) U+000F

    占位符 描述 举例 结果
    %f 打印小数,默认的长度和小数,小数精度为 6 位 fmt.Printf("%f", 1.50000000001) 1.500000
    %5f 长度为 5(整数和小数点以及小数加起来的长度),默认小数精度6位,长度不够则用空格来补 fmt.Printf("%10f", 0.1) __0.100000,由于空格显示不出来,用下划线表示空格
    %.3f 默认长度,小数精度为 3 fmt.Printf("%.3f", 0.1) 0.100
    %7.3f 长度为 7(整数和小数点以及小数加起来的长度),小树精度为 3 fmt.Printf("%7.3f", 0.1) __ 0.100,由于空格显示不出来,用下划线表示空格

    占位符 描述 举例 结果
    %s 输出 string 类型或 []byte 类型的字符串形式 fmt.Printf("%s, %s", "haha", []byte("haha")) haha, haha
    %q 加上双引号的字符串 fmt.Printf("%q", "haha") "haha"
    %x 十六进制的形式,字母用小写表示,每个字节两个字符 fmt.Printf("%x", "hello") 68656c6c6f
    %X 十六进制的形式,字母用大写表示,每个字节两个字符 fmt.Printf("%X", "hello") 68656C6C6F
    package main
    
    import (
    	"fmt"
    )
    
    func main() {
    	s := "haha"
    	b := []byte("haha")
    
    	fmt.Println("1. %s:输出字符串或 []byte 的字符串表示")
    	fmt.Printf("输出: %s, %snn", s, b)
    	// 输出: haha, haha
    
    	fmt.Println("2. %q:字符串带双引号")
    	fmt.Printf("输出: %qnn", s)
    	// 输出: "haha"
    
    	fmt.Println("3. %x:十六进制小写(每字节两个字符)")
    	fmt.Printf("输出: %xnn", "hello")
    	// 输出: 68656c6c6f
    
    	fmt.Println("4. %X:十六进制大写(每字节两个字符)")
    	fmt.Printf("输出: %Xnn", "hello")
    	// 输出: 68656C6C6F
    }
    

    占位符 描述 举例 结果
    %p 以16进制表示的第0个元素的地址,前缀为0x fmt.Printf("%p", []int{1, 2, 3}) 0xc000010120

    占位符 描述 举例 结果
    %p 16进制表示,前缀为0x fmt.Printf("%p", &User{Name: "小明"}) 0xc000008078

    到此这篇关于Go语言中占位符格式化符号的实现的文章就介绍到这了,更多相关Go 占位符格式化符号内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!

    您可能感兴趣的文章:

    • Go语言中的格式化输出占位符的用法详解
    • Go语言中的格式化占位符的实现示例

    站内搜索