当前位置: 首页 > news >正文

Go语言fmt.Sprintf(格式化输出)

Go语言fmt.Sprintf(格式化输出)

格式化在逻辑中非常常用。使用格式化函数,要注意写法:

fmt.Sprintf(格式化样式, 参数列表…)

  • 格式化样式:字符串形式,格式化动词以%开头。
  • 参数列表:多个参数以逗号分隔,个数必须与格式化样式中的个数一一对应,否则运行时会报错。

在 Go 语言中,格式化的命名延续C语言风格:

var progress = 2
var target = 8

// 两参数格式化
title := fmt.Sprintf("已采集%d个药草, 还需要%d个完成任务", progress, target)

fmt.Println(title)

pi := 3.14159
// 按数值本身的格式输出
variant := fmt.Sprintf("%v %v %v", "月球基地", pi, true)

fmt.Println(variant)

// 匿名结构体声明, 并赋予初值
profile := &struct {
    Name string
    HP   int
}{
    Name: "rat",
    HP:   150,
}

fmt.Printf("使用'%%+v' %+v\n", profile)

fmt.Printf("使用'%%#v' %#v\n", profile)

fmt.Printf("使用'%%T' %T\n", profile)

代码输出如下:

已采集2个药草, 还需要8个完成任务
“月球基地” 3.14159 true
使用’%+v’ &{Name:rat HP:150}
使用’%#v’ &struct { Name string; HP int }{Name:“rat”, HP:150}
使用’%T’ *struct { Name string; HP int }C语言中, 使用%d代表整型参数

下表中标出了常用的一些格式化样式中的动词及功能。

动 词功 能
%v按值的本来值输出
%+v在 %v 基础上,对结构体字段名和值进行展开
%#v输出 Go 语言语法格式的值
%T输出 Go 语言语法格式的类型和值
%%输出 % 本体
%b整型以二进制方式显示
%o整型以八进制方式显示
%d整型以十进制方式显示
%x整型以十六进制方式显示
%X整型以十六进制、字母大写方式显示
%UUnicode 字符
%f浮点数
%p指针,十六进制方式显示

相关文章:

  • Go 面试系列:Go interface中nil的比较问题
  • Go 面试系列: new 和 make有什么不同之处呢?
  • Go 面试系列: Goroutine 数量是越多越好吗?设置多少会影响GC调度呢?
  • 什么是读、写扩散?
  • 一文搞定权限设计模型(RBAC,ABAC)超详细图文解析
  • 一文搞定权限管理!授权、鉴权超详细解析
  • Go 中的 JSON如何序列化和反序列化?来看看go的包怎么实现!
  • Go中如何比较两个json?深度优先搜索解决,超详细代码!
  • Go语言实现枚举方法,const和iota结合轻松实现
  • Go msgp序列化使用详解!比Json更快!面试时吊打面试官!
  • 缓存击穿了怎么办?使用singleflight轻松解决!
  • Go中优雅的获取Map元素的多种方法
  • Go中的nil是是什么?和java的null有区别吗?
  • 大厂面试必会语言:GO语言入门,看这一篇就够了
  • 无需安装!Windows11网页版来了!一键带你体验win11!
  • php的引用
  • @angular/forms 源码解析之双向绑定
  • ES学习笔记(12)--Symbol
  • Facebook AccountKit 接入的坑点
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • IP路由与转发
  • Odoo domain写法及运用
  • PHP的类修饰符与访问修饰符
  • SwizzleMethod 黑魔法
  • vue总结
  • Webpack 4 学习01(基础配置)
  • Zepto.js源码学习之二
  • 对象引论
  • 反思总结然后整装待发
  • 回顾 Swift 多平台移植进度 #2
  • 力扣(LeetCode)357
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 入口文件开始,分析Vue源码实现
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 微信开源mars源码分析1—上层samples分析
  • scrapy中间件源码分析及常用中间件大全
  • ​Python 3 新特性:类型注解
  • #大学#套接字
  • $().each和$.each的区别
  • (02)vite环境变量配置
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (4)logging(日志模块)
  • (4)事件处理——(7)简单事件(Simple events)
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (70min)字节暑假实习二面(已挂)
  • (Oracle)SQL优化技巧(一):分页查询
  • (二开)Flink 修改源码拓展 SQL 语法
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置