Golang学习(五) printf格式化输出

前面我们在学习的时候经常会见到  fmt.Printf(%xxx,变量) 这种格式化输出

但具体不清楚有那些,这里就小小的整理一下 或者去下面的网站去查,更详细Go语言标准库文档中文版 | Go语言中文网 | Golang中文社区 | Golang中国Go语言文档中文版,Go语言中文网,中国 Golang 社区,Go语言学习园地,致力于构建完善的 Golang 中文社区,Go语言爱好者的学习家园。分享 Go 语言知识,交流使用经验Golang学习(五) printf格式化输出https://studygolang.com/pkgdoc

1、通用输出

%v     #仅输出该变量的值
%+v    #输出 该变量的值,如果是数组k/v  则将k/v都输出
%#v    #先输出结构体名字值,再输出结构体(字段名字+字段的值)
%T	   #输出结构体名称
%%	   #百分号

案例

package main

import (
	"fmt"
)

type student struct {
	id   int
	name string
}
func main()  {

	ss := student{id: 1,name: "test"}
	fmt.Printf("%v \n",ss)     //%v  当碰到数组时,仅输出value,不输出key
	fmt.Printf("%+v \n",ss)    //%+v  当碰到数组时,将key-value 都输出
	fmt.Printf("%#v \n",ss)    //%#v  输出时,会将方法名 +k/v都输出
	fmt.Printf("%T \n",ss)     //%T   输出结构体名称()
	fmt.Printf("%% \n")        //%%   没有意义,只是输出一个%
}

返回

{1 test} 
{id:1 name:test} 
main.student{id:1, name:"test"} 
main.student 
% 

2、整数类型

%b     二进制表示 
%c     相应Unicode码点所表示的字符 
%d     十进制表示 
%o     八进制表示 
%q     单引号围绕的字符字面值,由Go语法安全地转义 
%x     十六进制表示,字母形式为小写 a-f 
%X     十六进制表示,字母形式为大写 A-F 
%U     Unicode格式:123,等同于 "U+007B"

案例

package main

import (
    "fmt"
)

func main()  {
    ss := 68
    fmt.Printf("%b \n",ss)      //二进制表示
    fmt.Printf("%c \n",ss)      //Unicode码表示的字符
    fmt.Printf("%d \n",ss)      //十进制表示
    fmt.Printf("%o \n",ss)      //八进制
    fmt.Printf("%q \n",ss)      //输出字符,单引号包裹
    fmt.Printf("%x \n",ss)      //十六进制输出  小写
    fmt.Printf("%X \n",ss)      //十六进制输出  大写
    fmt.Printf("%U \n",ss)      //Unicode格式
}

返回

1000100     #二进制
D           #unicode码的字符
68          #十进制输出
104         #八进制输出
'D'         #单引号输出unicode码
44          #十六进制
44          #十六进制
U+0044

3、浮点数

%b	无小数部分、二进制指数的科学计数法,如-123456p-78;参见strconv.FormatFloat
%e	科学计数法,如-1234.456e+78
%E	科学计数法,如-1234.456E+78
%f	有小数部分但无指数部分,如123.456
%F	等价于%f
%g	根据实际情况采用%e或%f格式(以获得更简洁、准确的输出)
%G	根据实际情况采用%E或%F格式(以获得更简洁、准确的输出)

案例

package main

import (
    "fmt"
)

func main()  {
    fmt.Printf("%b \n",68.10)   //二进制输出
    fmt.Printf("%e \n",68.10)   //科学计数法 e
    fmt.Printf("%E \n",68.10)   //科学计数法 E
    fmt.Printf("%f \n",68.10)
    fmt.Printf("%g \n",68.10)
    fmt.Printf("%G \n",68.10)
  
}

返回

4792111478498918p-46 
6.810000e+01 
6.810000E+01 
68.100000 
68.1 
68.1 

4、布尔型

%t   true 或 false

5、字符串

%s     字符串或切片的无解译字节 
%q     双引号围绕的字符串,由Go语法安全地转义 
%x     十六进制,小写字母,每字节两个字符 
%X     十六进制,大写字母,每字节两个字符

案例

package main
 
import (
	"fmt"
)
 
 
func main() {
	fmt.Printf("%s","I'm a girl")
	fmt.Println()
	fmt.Printf("%q","I'm a girl")
	fmt.Println()
	fmt.Printf("%x","I'm a girl")
	fmt.Println()
	fmt.Printf("%X","I'm a girl")
	fmt.Println()
}

返回

I'm a girl
"I'm a girl"
49276d2061206769726c
49276D2061206769726C
上一篇:Linux CenterOS 8.2 安装ss


下一篇:python 去掉表情等特殊字符串