Go 语言 Printf 函数和格式化动词详解

Printf() 函数可以使用多种格式化动词对输出进行格式化。下面是可以与所有数据类型一起使用的一些通用格式化动词:

通用格式化动词:
以下动词适用于所有数据类型:

动词描述
%v以默认格式打印值
%#v以 Go 语法格式打印值
%T打印值的类型
%%打印百分号

示例:

package main

import (
  "fmt"
)

func main() {
  var i = 15.5
  var txt = "Hello World!"

  fmt.Printf("%v\n", i)
  fmt.Printf("%#v\n", i)
  fmt.Printf("%v%%\n", i)
  fmt.Printf("%T\n", i)

  fmt.Printf("%v\n", txt)
  fmt.Printf("%#v\n", txt)
  fmt.Printf("%T\n", txt)
}

结果:

15.5
15.5
15.5%
float64
Hello World!
"Hello World!"
string

整数格式化动词

以下动词适用于整数数据类型:

动词描述
%b二进制
%d十进制
%+d带符号的十进制
%o八进制
%O八进制(带 0o 前缀)
%x十六进制(小写)
%X十六进制(大写)
%#x带 0x 前缀的十六进制
%4d使用空格填充(宽度 4,右对齐)
%-4d使用空格填充(宽度 4,左对齐)
%04d使用零填充(宽度 4)

示例:

package main

import (
  "fmt"
)

func main() {
  var i = 15

  fmt.Printf("%b\n", i)
  fmt.Printf("%d\n", i)
  fmt.Printf("%+d\n", i)
  fmt.Printf("%o\n", i)
  fmt.Printf("%O\n", i)
  fmt.Printf("%x\n", i)
  fmt.Printf("%X\n", i)
  fmt.Printf("%#x\n", i)
  fmt.Printf("%4d\n", i)
  fmt.Printf("%-4d\n", i)
  fmt.Printf("%04d\n", i)
}

结果:

1111
15
+15
17
0o17
f
F
0xf
  15
15
0015

字符串格式化动词

以下动词适用于字符串数据类型:

动词描述
%s普通字符串打印
%q双引号包裹的字符串打印
%8s普通字符串打印(宽度 8,右对齐)
%-8s普通字符串打印(宽度 8,左对齐)
%x字节值的十六进制转储
% x带空格的十六进制转储

示例:

package main

import (
  "fmt"
)

func main() {
  var txt = "Hello"

  fmt.Printf("%s\n", txt)
  fmt.Printf("%q\n", txt)
  fmt.Printf("%8s\n", txt)
  fmt.Printf("%-8s\n", txt)
  fmt.Printf("%x\n", txt)
  fmt.Printf("% x\n", txt)
}

结果:

Hello
"Hello"
   Hello
Hello
48656c6c6f
48 65 6c 6c 6f

布尔格式化动词

以下动词适用于布尔数据类型:

动词描述
%t布尔运算符的 true 或 false 格式(与 %v 相同)

示例:

package main

import (
  "fmt"
)

func main() {
  var i = true
  var j = false

  fmt.Printf("%t\n", i)
  fmt.Printf("%t\n", j)
}

结果:

true
false

浮点数格式化动词

以下动词适用于浮点数数据类型:

动词描述
%e科学计数法,指数为 ‘e’
%f小数点,无指数部分
%.2f默认宽度,精度为 2
%6.2f宽度 6,精度 2
%g必要时使用指数,仅保留必要的位数

示例:

package main

import (
  "fmt"
)

func main() {
  var i = 3.141

  fmt.Printf("%e\n", i)
  fmt.Printf("%f\n", i)
  fmt.Printf("%.2f\n", i)
  fmt.Printf("%6.2f\n", i)
  fmt.Printf("%g\n", i)
}

结果:

3.141000e+00
3.141000
3.14
  3.14
3.141

请注意,这个翻译可能不是完美的,因为语言之间的表达方式可能有细微的差异。

最后

为了方便其他设备和平台的小伙伴观看往期文章:公众号搜索Let us Coding,或者扫描下方二维码,关注公众号,即可获取最新文章。

看完如果觉得有帮助,欢迎点赞、收藏关注

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/190483.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

灯塔的安装

Docker 安装 docker 安装参考:https://docs.docker.com/engine/install/ shell脚本: curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh灯塔安装 mkdir docker-ARL;cd docker-ARL curl https://bootstrap.pypa.io/get-pip.py -o get-pip…

服务器下db(数据库)的执行

1、查看 select * from xxxx(表名) where xxx(列表)1 and.......正常写就行 2、插入 如果你想要在 SELECT INSERT INTO … SELECT 语句中将部分列保持不变,只改变一两列的值,可以在 语句中直接设置目标列的值,而其他列从源表中…

thinkphp最新开发的物业管理系统 缴费管理、停车管理、收费管理、值班管理

物业费,水电燃气费,电梯费,租金,临时收费等多种收费规则完全自定义,账单自动生成,无需人工计算 实时数据互通:一键报事报修,购买车辆月卡,管理家人信息,参加物…

知识的分层:know-what/how/why

知识(knowledge)表示知道某些信息。通常而言,知识是正确的,但不一定是完备的。知识本身有自己的适用范围,特别是工程技术类问题。 根据知识的类型,可分为三类: know-whatknow-howknow-why kno…

个人成长|信奉长期主义,就要多做可积累有复利的事。

哈喽啊,大家好,我是雷工! 最近有个哥们儿吐槽,说他们公司人事找他谈话,要给降工资,他不同意。 过了没几天又说: “定了,全员降薪”。 “你同意了?” “不同意&#xff0…

DL Homework 8

目录 习题5-2 证明宽卷积具有交换性, 即公式(5.13). 习题5-4 对于一个输入为100 100 256的特征映射组, 使用3 3的卷积核, 输出为100 100 256的特征映射组的卷积层, 求其时间和空间复杂度. 如果引入一…

GLP-1 , GLP-1R

-- 6VCB_GLP-1R G_protein, GLP-1 peptidea positive allosteric modulator

Drools 7 JMX Mbean 及Metric 分析

Mbean mbean的打开很简单,使用jmx启动参数: -Dcom.sun.management.jmxremote.port9999 -Ddrools.mbeansenabled -Dcom.sun.management.jmxremote.authenticatefalse -Dcom.sun.management.jmxremote.sslfalse 但通过jconsole能直观看到的东西也很…

Win11安装Docker

一、进入Docker官网 首先先到Docker官网下载最新官方Docker for Windows链接:Docker下载 在官网内可以查看到Docker的开发文档: 根据官网提示,Windows环境下下载Docker必须满足:Docker for Windows requires 64bit Windows 11 Pro…

CSS之弹性盒子Flexible Box

我想大家在做布局的时候,没接触flex布局之前,大家都是用浮动来布局的,但现在我们接触了flex布局之后,我只能说:“真香”。让我为大家介绍一下弹性盒子模型吧! Flexible Box 弹性盒子 在我们使用弹性盒子时&…

linux系统初始化本地git,创建ssh-key

step1, 在linux系统配置你的git信息 sudo apt install -y git//step1 git config --global user.name your_name // github官网注册的用户名 git config --global user.email your_email //gitub官网注册绑定的邮箱 git config --list //可以查看刚才你的配置内容…

redis的集群,主从复制,哨兵

redis的高可用 在Redis中,实现高可用的技术主要包括持久化、主从复制、哨兵和集群,下面分别说明它们的作用,以及解决了什么样的问题。 持久化: 持久化是最简单的高可用方法(有时甚至不被归为高可用的手段)…

HONOR荣耀MagicBook 15 2021款 锐龙版R5(BMH-WFQ9HN)原厂Windows11预装OEM系统含F10智能还原

链接:https://pan.baidu.com/s/1faYtC5BIDC2lsV_JSMI96A?pwdj302 提取码:j302 原厂系统Windows11.22H2工厂模式安装包,含F10一键智能还原,自带所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、荣耀 电脑管家等预装程序 …

相识词设计思路及实现方法

目录 1.业务背景 2.实现方法 第一种: ​编辑 第二种: 3.相关材料 1.业务背景 业务有全文检索功能,然后根据标书的要求需要有近似词的功能,一般近似词需要模型训练之后成为词库,是需要大数据相关人员负责。负责人表示…

【Leetcode合集】1457. 二叉树中的伪回文路径

1457. 二叉树中的伪回文路径 1457. 二叉树中的伪回文路径 代码仓库地址: https://github.com/slience-me/Leetcode 个人博客 :https://slienceme.xyz 给你一棵二叉树,每个节点的值为 1 到 9 。我们称二叉树中的一条路径是 「伪回文」的&am…

2024年最新最全的Jmeter接口测试必会知识点:jmeter连接数据库

jmeter连接mysql数据库 大致步骤如下: 1、下载mysql的jar包放入到jmeter的lib下,然后重启jmeter 2、配置JDBC Connection Configuration 3、配置JDBC Request 4、在请求中引用查询到的结果变量,可以结合计数器取每一个结果值&#xff1a…

RocketMQ 安装部署及应用场景记录

文章目录 前言一、RocketMQ简介1.1 整体架构 二、RocketMQ安装部署2.1 RocketMQ 下载2.2 修改 JVM 参数2.3 启动 NameServer 和 Broker2.4 验证发送和接受消息2.5 停止 NameServer 和 Broker2.6 配置全局环境 三、RocketMQ应用场景3.1 异步处理3.2 应用解耦3.3 流量削峰 前言 …

基于acme免费申请泛域名证书

参考文档:https://github.com/acmesh-official/acme.sh 文章目录 step1: 获取阿里云的ak、skstep2: 安装acmestep3: 安装通配符证书step4: 查看证书step5: 证书的使用step6: 删除证书 step1: 获取阿里云的ak、sk export Ali_Key"LTAI5tG8888888CDoEjLzkE"…

Maxwell安装部署消费到kafka集群

1.上传安装包到linux系统上面 2.解压安装包到安装目录下,并且重命名 [rootVM-4-10-centos package]# tar -zxvf maxwell-1.29.2.tar.gz -C /opt/software/3.配置mysql 增加以下配置 #数据库id server-id 1 #启动binlog,该参数的值会作为binlog的文件…

Vite -构建优化 - 分包策略 + 打包压缩

什么是分包策略 分包策略 就是把不会常规更新的文件,单独打包处理。问 :什么是不会常规更新的文件? 答 : 就是基本上不会改的文件,比如我们引入的第三方的依赖包,例如 lodash工具包,这些工具包…