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 := map[string]interface{}{"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: map[age: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 := map[string]interface{}{"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: map[age: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 := map[string]interface{}{"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: map[string]interface {}{"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 := map[string]interface{}{"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: map[string]interface {}
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的错误信息-原始错误信息
}
 

  • 21
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值