go语言的占位符

1、%v:值占位符,将值格式化为一个更紧凑的表示形式。

2、%+v:相比%v,如果是结构体,会带上字段名。

3、%#v:该值的go语法表示形式。

4、%T:值的类型的go语法表示。

5、%%:输出一个字面的百分号。

6、%t:单词 true 或 false。

7、%b:二进制表示形式。

8、%c:相应的Unicode码值。

9、%d:十进表示形式。

10、%o:八进表示形式。

11、%O:八进表示形式,带0o前缀。

12、%q:将值格式化为一个带有单引号的字符。

13、%x:将值格式化为一个不带符号的采用十六进制表示的字符。

14、%X:与 %x 不同的是将值格式化为大写字母形式。

15、%U:将值格式化为一个带有前缀 "U+"的字符串形式,Unicode格式。

16、%e:将值格式化为一个带小数点的科学计数法表示形式。

17、%E 将值格式化为一个带小数点的科学计数法表示形式。

18、%f:将值格式化为带小数点的浮点数表示形式。

19、%F:同 %f。

20、%g:将值格式化为一个合适的表示形式的字符串,可以自动选择带小数点的浮点数表示形式或不带小数点的浮点数表示形式。

21、%G:与 %g不同的是,%G会根据值的范围选择采用大写字母或小写字母表示的形式。

22、%s 字符串表示形式。

23、%p:将值格式化为一个指针的地址表示形式,十六进制表示,前缀 0x。

24、%.(数字)s:截取指定长度的字符串。

25、%w:将值格式化为一个错误消息的字符串形式。

1、%v:值占位符,将值格式化为一个更紧凑的表示形式。

package main

import (

"fmt"

)

type user struct {

name string

age int

}

func main() {

u := user{name: "路多辛", age: 18}

fmt.Printf("The value is: %v\n", u)

m := mapstringinterface{}{"name": "路多辛", "age": 18}

fmt.Printf("The value is: %v\n", m)

fmt.Printf("The value is: %v\n", 666)

}

输出结果如下:

The value is: {路多辛 18}

The value is: mapage:18 name:路多辛

The value is: 666

2、%+v:相比%v,如果是结构体,会带上字段名。

package main

import (

"fmt"

)

type user struct {

name string

age int

}

func main() {

u := user{name: "路多辛", age: 18}

fmt.Printf("The value is: %+v\n", u)

m := mapstringinterface{}{"name": "路多辛", "age": 18}

fmt.Printf("The value is: %+v\n", m)

fmt.Printf("The value is: %+v\n", 666)

}

输出结果如下:

The value is: {name:路多辛 age:18}

The value is: mapage:18 name:路多辛

The value is: 666

3、%#v:该值的go语法表示形式。

package main

import (

"fmt"

)

type user struct {

name string

age int

}

func main() {

u := user{name: "路多辛", age: 18}

fmt.Printf("The value is: %#v\n", u)

m := mapstringinterface{}{"name": "路多辛", "age": 18}

fmt.Printf("The value is: %#v\n", m)

fmt.Printf("The value is: %#v\n", 666)

}

输出结果如下:

The value is: main.user{name:"路多辛", age:18}

The value is: mapstringinterface {}{"age":18, "name":"路多辛"}

The value is: 666

4、%T:值的类型的go语法表示。

package main

import (

"fmt"

)

type user struct {

name string

age int

}

func main() {

u := user{name: "路多辛", age: 18}

fmt.Printf("The value is: %T\n", u)

m := mapstringinterface{}{"name": "路多辛", "age": 18}

fmt.Printf("The value is: %T\n", m)

fmt.Printf("The value is: %T\n", 666)

}

输出结果如下:

The value is: main.user

The value is: mapstringinterface {}

The value is: int

5、%%:输出一个字面的百分号。

package main

import (

"fmt"

)

func main() {

fmt.Printf("%%") // 输出 %

}

6、%t:单词 true 或 false。

package main

import (

"fmt"

)

func main() {

fmt.Printf("%t", true) // 输出 true

}

7、%b:二进制表示形式。

package main

import (

"fmt"

)

func main() {

fmt.Printf("%b", 3) // 输出:11

}

8、%c:相应的Unicode码值。

package main

import (

"fmt"

)

func main() {

fmt.Printf("%c%c%c的所思所想", 0x8DEF, 0x591A, 0x8F9B)

// 输出 路多辛的所思所想

}

9、%d:十进表示形式。

package main

import (

"fmt"

)

func main() {

fmt.Printf("%d", 0x12) // 输出 18

}

10、%o:八进表示形式。

package main

import (

"fmt"

)

func main() {

fmt.Printf("%o", 9) // 输出 11

}

11、%O:八进表示形式,带0o前缀。

package main

import (

"fmt"

)

func main() {

fmt.Printf("%O", 9) // 输出 0o11

}

12、%q:将值格式化为一个带有单引号的字符。

package main

import "fmt"

func main() {

fmt.Printf("%q", 0x8DEF) // 输出 '路'

}

13、%x:将值格式化为一个不带符号的采用十六进制表示的字符。

package main

import "fmt"

func main() {

fmt.Printf("%x\n", 0x8DEF) // 输出 8def

fmt.Printf("%x", 13) // 输出 d

}

14、%X:与 %x 不同的是将值格式化为大写字母形式。

package main

import "fmt"

func main() {

fmt.Printf("%x\n", 0x8DEF) // 输出 8DEF

fmt.Printf("%x", 13) // 输出 D

}

15、%U:将值格式化为一个带有前缀 "U+"的字符串形式,Unicode格式。

package main

import "fmt"

func main() {

fmt.Printf("%U\n", 0x8DEF) // 输出 U+8DEF

fmt.Printf("%U", 13) // 输出 U+000D

}

16、%e:将值格式化为一个带小数点的科学计数法表示形式。

package main

import "fmt"

func main() {

fmt.Printf("The value is: %e\n", 10.1) // 输出 1.010000e+01

}

17、%E 将值格式化为一个带小数点的科学计数法表示形式。

package main

import "fmt"

func main() {

fmt.Printf("The value is: %E\n", 10.1) // 输出 1.010000E+01

}

18、%f:将值格式化为带小数点的浮点数表示形式。

package main

import "fmt"

func main() {

fmt.Printf("The value is: %f\n", 10.1) // 输出 10.100000

}

19、%F:同 %f。

package main

import "fmt"

func main() {

fmt.Printf("The value is: %F\n", 10.1) // 输出 10.100000

}

20、%g:将值格式化为一个合适的表示形式的字符串,可以自动选择带小数点的浮点数表示形式或不带小数点的浮点数表示形式。

package main

import "fmt"

func main() {

fmt.Printf("The value is: %g\n", 10) // 输出 %!g(int=10)

fmt.Printf("The value is: %g\n", 10.1) // 输出 10.1

fmt.Printf("The value is: %g\n", 1000000.1) // 输出 1.0000001e+06

}

21、%G:与 %g不同的是,%G会根据值的范围选择采用大写字母或小写字母表示的形式。

package main

import "fmt"

func main() {

fmt.Printf("The value is: %G\n", 10) // 输出 %!G(int=10)

fmt.Printf("The value is: %G\n", 10.1) // 输出 10.1

fmt.Printf("The value is: %G\n", 1000000.1) // 输出 1.0000001E+06

}

22、%s 字符串表示形式。

package main

import "fmt"

func main() {

fmt.Printf("The value is: %s\n", "路多辛的博客") // 输出 路多辛的博客

fmt.Printf("The value is: %s\n", \[\]byte("路多辛")) // 输出 路多辛

}

23、%p:将值格式化为一个指针的地址表示形式,十六进制表示,前缀 0x。

package main

import "fmt"

func main() {

a := 10

fmt.Printf("The value is: %p\n", &a) // 输出例如 0xc0000b2008

}

24、%.(数字)s:截取指定长度的字符串。

package main

import "fmt"

func main() {

fmt.Printf("The value is: %.3s\n", "路多辛的博客") // 输出 路多辛

}

25、%w:将值格式化为一个错误消息的字符串形式。

package main

import (

"errors"

"fmt"

)

func main() {

w := fmt.Errorf("wrapD的错误信息-%w", errors.New("原始错误信息"))

fmt.Println(w.Error()) // 输出 wrap的错误信息-原始错误信息

}

相关推荐
MC皮蛋侠客21 小时前
Google Test 单元测试指南
c++·单元测试·google test
艾莉丝努力练剑1 天前
【Linux:文件】Ext系列文件系统进阶
linux·运维·服务器·c++·文件系统·文件io·ext
kkeeper~1 天前
0基础C语言积跬步之数据在内存中的存储
c语言·数据结构·算法
鹏北海-RemHusband1 天前
Go 语言进阶笔记 — 面向 JS/TS 前端开发者
笔记·golang
wabs6661 天前
关于贪心算法的一些自我总结【力扣45.跳跃游戏II】【灵感来源:代码随想录】
算法·贪心算法·复盘
2401_876964131 天前
【湖北专升本】2026湖北专升本真题PDF+备考资料汇总
数据结构·人工智能·经验分享·深度学习·算法·计算机视觉
basketball6161 天前
C++ NULL 和 nullptr 区别 以及 nullptr 的核心实现
java·开发语言·c++
嗝o゚1 天前
CANN GE 算子融合——融合算法与调度策略
算法·昇腾·cann·ge
小江的记录本1 天前
【JVM虚拟机】垃圾回收GC:垃圾回收算法:标记-清除、标记-复制、标记-整理、分代收集(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·算法·安全·面试
Fre丸子_1 天前
自定义文件夹选取功能
c++