本文整理了Go语言的标准输出流(fmt.Printf)在打印到屏幕时的格式化输出操作。
在这里按照占位符将被替换的变量类型划分,更方便查询和记忆。
总结
1.1 General(通用占位符)
占位符
说明
%v
以默认的方式打印变量的值(万能占位符,如果不知道变量是什么类型,用%v即可,go语言会自动为你识别)
%T
打印变量的类型
%%
字面上的百分号,并非值的占位符
补充:
%v:默认格式的值。当打印结构时,加号(%+v)会增加字段名;
%#v:Go 样式的值表达;
示例:
package main
import "fmt"
func main() {
var (
a = 100
b = "henry"
)
// %v俗称占位符
fmt.Printf("a=%v\n", a)
// %T 打印类型
fmt.Printf("b的类型是%T\n", b)
// %%转义
fmt.Printf("%d%%\n", a)
}
执行结果:
1.2 Integer(整型)
占位符
说明
%+d
带符号的整型
%q
打印单引号
%o
不带零的八进制
%#o
带零的八进制
%x
小写的十六进制
%X
大写的十六进制
%#x
带0x的十六进制
%U
打印Unicode字符
%#U
打印带字符的Unicode
%b
打印整型的二进制
1.3 Integer width(指定长度的整型,以5为例)
占位符
说明
%5d
整型长度为5,右对齐,左边留白
%-5d
左对齐右边留白
%05d
数字前面补零
示例:
package main
import "fmt"
func main() {
var (
a = 100
)
fmt.Printf("|%d|\n", a)
fmt.Printf("|%8d|\n", a)
fmt.Printf("|%-8d|\n", a)
fmt.Printf("|%08d|\n", a)
}
执行结果:
1.4 Float(浮点数)
占位符
说明
%f
(=%.6f) 6位小数点
%e
(=%.6e) 6位小数点(科学计数法)
%g
用最少的数字来表示
%.3g
最多3位数字来表示
%.3f
最多3位小数来表示
示例:
package main
import "fmt"
func main() {
f1 := 3.141592654
fmt.Printf("%.2f\n", f1) //最多2位小数表示
fmt.Printf("%.2g\n", f1) //最多用2位数字表示
}
执行结果:
1.5 String(字符串)
占位符
说明
%s
正常输出字符串
%q
字符串带双引号,字符串中的引号带转义符
%#q
字符串带反引号,如果字符串内有反引号,就用双引号代替
%x
将字符串转换为小写的16进制格式
%X
将字符串转换为大写的16进制格式
% x
带空格的16进制格式
示例:
package main
import "fmt"
func main() {
s1 := "这是一个字符串\""
fmt.Printf("s1:%s\n", s1) // %s 正常输出字符串
fmt.Printf("s1:%q\n", s1) // %q 字符串带双引号,字符串中的引号带转义符
}
执行结果:
1.6 String Width (指定长度的字符串,以5为例)
占位符
说明
%5s
最小宽度为5
%-5s
最小宽度为5(左对齐)
%.5s
最大宽度为5
%5.7s
最小宽度为5,最大宽度为7
%-5.7s
最小宽度为5,最大宽度为7(左对齐)
%5.3s
如果宽度大于3,则截断
%05s
如果宽度小于5,就会在字符串前面补零
代码示例:
package main
import "fmt"
func main() {
s1 := "这是一个字符串\""
fmt.Printf("s1:%20s\n", s1) //字符串最小宽度为20
fmt.Printf("s1:%.5s\n", s1) //字符串最大宽度为5
}
执行结果:
1.7 Struct(结构体)
占位符
说明
%v
以默认的方式打印变量的值
%+v
在打印结构体时,会添加字段名
%#v
在打印结构体时,会添加字段名和包名
1.8 Boolean(布尔值)
占位符
说明
%t
打印true或false
1.9 Pointer(指针)
占位符
说明
%p
带0x的指针(指针值带有0x的十六进制前缀)
%#p
不带0x的指针
Go语言fmt.Printf使用指南
文章引用自 fmt fmt包实现了类似C语言printf和scanf的格式化I/O.主要分为向外输出内容和获取输入内容两大部分. 向外输出 标准库fmt提供了以下几种输出相关函数. Print Pri ...
Android中使用占位符
Android中占位符的使用 有些朋友可能会动态的修改Android中strings.xml文件中的值,在这里给大家推荐一种简单的方法. strings.xml中节点是支持占位符的,如下所示: < ...
C语言 - printf的占位符(%) 异常
printf的占位符(%) 异常 本文地址: http://blog.csdn.net/caroline_wendy/article/details/26719135 C语言中, 使用%代表占位符的意 ...
【GoLang】GoLang fmt 占位符详解
golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf. # 定义示例类型和变量 type Human struct { Name string } var peo ...
golang fmt占位符
golang fmt格式"占位符" golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf. 定义示例类型和变量 type Human stru ...
golang fmt格式占位符
golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf. # 定义示例类型和变量 type Human struct { Name string } var peo ...
golang中fmt的&#39;占位符&#39;使用
golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf. # 定义示例类型和变量 type Human struct { Name string } var peo ...
【Go】Go语言的%d,%p,%v等占位符的使用
golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf. # 定义示例类型和变量 type Human struct { Name string } var peo ...
随机推荐
php调用COM组件
PHP 开启COM组件 1.先到PHP.INI中打开COM选项,com.allow_dcom = true 2.我这里的环境是PHP5.4.7,PHP 5.4.5后,com/dotnet 模块已经成了 ...
C primer plus 练习题 第六章
16. #include int main() { double remain = 100.0; ; ) { remain = remain * 0.08 + rema ...
网站的配置文件XML读写
网站的配置信息一般都写入到XML中,以下是简单的对xml的读写操作,仅供参考. 读操作: XmlDocument xmlDoc = new XmlDocument(); XmlReaderSettin ...
jQuery AJAX load() 方法
jQuery load() 方法 jQuery load() 方法是简单但强大的 AJAX 方法. load() 方法从服务器加载数据,并把返回的数据放入被选元素中. 语法: $(selector). ...
es6的对象新增的方法
Object.is 可以看成是=== 的加强版, 其修正了 === 的 NaN 不等于自身, 以及 +0 等于 -0 另外说下, == 会自动转型, 但是 Object.is 也是如果类型不一致也是不 ...
MySQL--执行mysql脚本及其脚本编写
http://www.cnblogs.com/kex1n/archive/2010/03/26/2286504.html
To pack or not to pack – MyISAM Key compression
MyISAM storage engine has key compression which makes its indexes much smaller, allowing better fit ...
开源CMDB详细安装使用
CMDB的GitHub地址: https://github.com/open-cmdb/cmdb 环境说明 [root@WCY ~]# cat /etc/redhat-release CentOS L ...
GPU instancing
参考 https://www.cnblogs.com/hont/p/7143626.html github地址 https://github.com/yingsz/instancing/ 补充2点: ...