云边日落 残雪暗随冰笋滴,新春偷向柳梢归。 (宋·张耒·春日)
博主 云边日落
渝ICP备2021002886号-1渝公网安备50022502000591号博主 11月5日 在线自豪地使用 Typecho 建站搭配使用 🌻Sunny 主题当前在线 1 人
歌曲封面 未知作品
  • 歌曲封面“魔女の宅急便”~ルージュの伝言松任谷由実

渝ICP备2021002886号-1

渝公网安备50022502000591号

网站已运行 4 年 152 天 17 小时 15 分

Powered by Typecho & Sunny

2 online · 41 ms

Title

打印格式化

渣渣明

·

·

155次阅读
go
Article
⚠️ 本文最后更新于2021年07月19日,已经过了1220天没有更新,若内容或图片失效,请留言反馈

1.通用打印格式

 打印格式化通常使用fmt包,通用的打印格式如下。

打印格式打印内容
%v值的默认格式表示
%+v类似%v,但输出结构体时会添加字段名
%#v值的Go语法表示
%T值的类型的Go语法

 示例如下。

♾️ go 代码:
package main
import "fmt"
func main()  {
    str := "steven"
    fmt.Printf("%T , %v \n", str, str)
    var a rune = '一'
    fmt.Printf("%T , %v \n", a, a)
    var b byte = 'b'
    fmt.Printf("%T , %v \n", b, b)
    var c int32 = 98
    fmt.Printf("%T , %v \n", c, c)
}

 运行结果如下
krampz4v.png
 通过示例可以看出,使用通用的格式打印,输出结果可能不是自己想要的,为了确保输出结果与需求一致,还需要学习具体的打印格式。

2.布尔型打印格式

 布尔型的具体打印格式如下。

打印格式打印内容
%t单词true或false

 示例如下。

♾️ go 代码:
package main
import "fmt"
func main()  {
    var flag bool
    fmt.Printf("%T , %t \n", flag, flag)
    flag = true
    fmt.Printf("%T , %t \n", flag, flag)
}

 运行结果如下。
kran6hzb.png

3.整型打印格式

 整型的具体打印格式如下。

打印格式打印内容
%b表示二进制
%c该值对应的unicode码值
%d表示十进制
%8d表示该整型的长度是8,不足8则在数值前补空格;如果超出8.则以实际为准
%08d表示该整型的长度是8,不足8则在数值前补0;如果超出8.则以实际为准
%o表示八进制
%q该值对应的单引号括起来的Go语法字符字面值,必要时采用安全的转移表示
%x表示十六进制,使用a~f
%X表示十六进制,使用A~F
%U表示为unicode格式:U+1234,等价于“U+%04X

 示例如下。

♾️ go 代码:
package main
import "fmt"
func main()  {
    fmt.Printf("%T , %d \n", 123, 123)
    fmt.Printf("%T , %5d \n", 123, 123)
    fmt.Printf("%T , %05d \n", 123, 123)
    fmt.Printf("%T , %b \n", 123, 123)
    fmt.Printf("%T , %o \n", 123, 123)
    fmt.Printf("%T , %c \n", 97, 97)
    fmt.Printf("%T , %q \n", 97, 97)
    fmt.Printf("%T , %x \n", 123, 123)
    fmt.Printf("%T , %X \n", 123, 123)
    fmt.Printf("%T , %U \n", '一' , '一')
}

 运行结果如下。

♾️ go 代码:
int , 123 
int ,   123 
int , 00123 
int , 1111011 
int , 173 
int , a 
int , 'a' 
int , 7b 
int , 7B 
int32 , U+4E00 

4.浮点型与复数型的打印格式

 浮点型的具体打印格式如下。

打印格式打印内容
%b无小数部分、二进制指数的科学计数法,如-123456p-78
%e(=%.6e)有6位小数部分的科学计数法,如-1234.456e+78
%E科学计数法,如-1234.456E+78
%f(=%.6f)有6位小数部分,如123.456123
%F等价于%f
%g根据实际情况采用%e或%f格式(获得更简洁、准确的输出)
%G根据实际情况采用%E或%F格式(获得更简洁、准确的输出)

 浮点型示例如下。

♾️ go 代码:
package main
import "fmt"
func main()  {
    fmt.Printf("%b \n", 123.123456)
    fmt.Printf("%f \n", 123.1)
    fmt.Printf("%.2f \n", 123.123456)
    fmt.Printf("%e \n", 123.123456)
    fmt.Printf("%E \n", 123.123456)
    fmt.Printf("%.1e \n", 123.123456)
    fmt.Printf("%F \n", 123.123456)
    fmt.Printf("%g \n", 123.123456)
    fmt.Printf("%G \n", 123.123456)
}

 运行结果如下。

♾️ go 代码:
8664042977533870p-46 
123.100000 
123.12 
1.231235e+02 
1.231235E+02 
1.2e+02 
123.123456 
123.123456 
123.123456 

 复数型示例如下。

♾️ go 代码:
package main
import "fmt"
func main()  {
    var value complex64 = 2.1 + 12i
    value2 :=complex(2.1,12)
    fmt.Println(real(value))
    fmt.Println(imag(value))
    fmt.Println(value2)

}

 运行结果如下。

♾️ go 代码:
2.1
12
(2.1+12i)

5.字符串与字节数组的打印格式

 字符串和字节数组的具体打印格式如下。

打印格式打印内容
%s直接输出字符串或者字节数组
%q该值对应的双引号括起来的Go语法字符串字面值,必要时采用安全的转义表示
%x每个字节用两个字符十六进制表示,使用a~f
%X每个字节用两个字符十六进制表示,使用A~F

 字符串示例如下。

♾️ go 代码:
package main
import "fmt"
func main()  {
    arr := []byte{'x', 'y', 'z', 'z'}
    fmt.Printf("%s \n", "欢饮大家学习区块链")
    fmt.Printf("%q \n", "欢饮大家学习区块链")
    fmt.Printf("%x\n", "欢饮大家学习区块链")
    fmt.Printf("%X \n", "欢饮大家学习区块链")
    fmt.Printf("%T , %s \n", arr, arr)
    fmt.Printf("%T , %q \n", arr, arr)
    fmt.Printf("%T , %x \n", arr, arr)
    fmt.Printf("%T , %X \n", arr, arr)
}

 运行结果如下。

♾️ go 代码:
欢饮大家学习区块链 
"欢饮大家学习区块链" 
e6aca2e9a5aee5a4a7e5aeb6e5ada6e4b9a0e58cbae59d97e993be
E6ACA2E9A5AEE5A4A7E5AEB6E5ADA6E4B9A0E58CBAE59D97E993BE 
[]uint8 , xyzz 
[]uint8 , "xyzz" 
[]uint8 , 78797a7a 
[]uint8 , 78797A7A 

进程 已完成,退出代码为 0
现在已有 0 条评论,0 人点赞
Comment:共0条
发表
搜 索 消 息 足 迹
你还不曾留言过..
你还不曾留下足迹..
博主 不再显示
博主