当使用fmt包打印一个数值时,我们可以用%d、%o或%x参数控制输出的进制格式,就像下面的例子:

o := 0666
fmt.Printf("%d %[1]o %#[1]o\n", o) // "438 666 0666"
x := int64(0xdeadbeef)
fmt.Printf("%d %[1]x %#[1]x %#[1]X\n", x)
// Output:
// 3735928559 deadbeef 0xdeadbeef 0XDEADBEEF

注意fmt的两个使用技巧。通常Printf格式化字符串包含多个%参数时将会包含对应相同数量的额外操作数,但是%之后的 [1] 副词告诉Printf函数再次使用第一个操作数。第二,%后的 # 副词告诉Printf在用%o、%x或%X输出时生成0、0x或0X前缀。
字符使用 %c  参数打印通过一对单引号直接包含对应字符,或者是用 %q  参数打印带单引号的字符:

ascii := 'a'
unicode := '国'
newline := '\n'
fmt.Printf("%d %[1]c %[1]q\n", ascii) // "97 a 'a'"
fmt.Printf("%d %[1]c %[1]q\n", unicode) // "22269 国 '国'"
fmt.Printf("%d %[1]q\n", newline) // "10 '\n'"

用Printf函数的%g参数打印浮点数,将采用更紧凑的表示形式打印,并提供足够的精度,但是对应表格的数据,使用%e(带指数)或%f的形式打印可能更合适。所有的这三个打印形式都可以指定打印的宽度和控制打印精度。

for x := 0; x < 8; x++ {
  fmt.Printf("x = %d e^x = %8.3f\n", x, math.Exp(float64(x)))
}

最新文章

  1. Java日志规范
  2. Ubuntu下shell脚本运行异常:bash和dash的区别
  3. cocos2d-x.0创建工程
  4. ytu 1041: 迭代法求平方根(水题)
  5. Matlab交集并集的实现
  6. Qt之国际化(系统文本-QMessageBox按钮、QLineEdit右键菜单等)
  7. UVA 10972 RevolC FaeLoN(边连通分量)
  8. undo日志
  9. Android的配置界面PreferenceActivity
  10. 深度学习“引擎”之争:GPU加速还是专属神经网络芯片?
  11. .net SoapHeader验证
  12. PADS Layout VX.2.3 出Gerber文件时遇到一个奇怪的现象
  13. Python3学习的准备工作
  14. tomcat源码之connector配置
  15. 转:StarUML3.0的破解方法
  16. js中json知识点
  17. [leetcode 8] String to Integer
  18. shell 脚本实战笔记(8)--ssh免密码输入执行命令
  19. ulbuntu 安装配置 java
  20. sixxpack破解的文章!【转】

热门文章

  1. 解决 screen 连接不上,提示“There is no screen to be resumed matching 18352.” 的问题
  2. Authentication failure. Retrying - 彻底解决vagrant up时警告
  3. OpenMP基本概念【转】
  4. HTTPWebrequest上传文件--Upload files with HTTPWebrequest (multipart/form-data)
  5. keepalived非争抢机制不生效【原创】
  6. 2019年ArcGIS规划专业专项培训(四天)
  7. Ionic4.x ion-refresher 下拉更新
  8. CDH 部署 Hadoop:5.开始安装
  9. Python3基础 二、八、十、十六进制转换
  10. Qt获取时间戳作为图片名