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

Go 语言中的格式化占位符

在 Go 语言中,fmt 包提供了大量的格式化占位符,用于格式化输出不同类型的数据。选择合适的占位符,可以确保输出的内容格式正确、清晰易懂。

常见的占位符:

基本类型
  • %v:按值的默认格式输出。适用于任何类型。
  • %+v:在 %v 的基础上,结构体会额外输出字段名。
  • %#v:输出 Go 语法表示的值。结构体会输出详细的字段信息和类型。
  • %T:输出值的类型。
  • %%:字面百分号(% 本身)。
整数类型
  • %d:十进制整数。
  • %b:二进制格式。
  • %o:八进制格式。
  • %x:十六进制格式(小写字母)。
  • %X:十六进制格式(大写字母)。
  • %c:相应 Unicode 码点的字符。
浮点数和复数
  • %f:标准浮点数表示(小数部分)。
  • %e:科学计数法表示(小写 e)。
  • %E:科学计数法表示(大写 E)。
  • %g:根据具体情况选择 %f%e 表示。
字符串和字节
  • %s:字符串。
  • %q:带双引号的字符串,安全转义。
  • %x:以十六进制表示字符串或字节切片。
  • %X:以大写十六进制表示字符串或字节切片。
布尔类型
  • %t:布尔值 (truefalse)。
指针
  • %p:指针的十六进制表示。

如何选择占位符:

选择占位符时,首先需要根据数据类型选择合适的格式化符号,具体情况如下:

  1. 输出通用数据类型

    • 使用 %v 是通用、默认的选择。如果你不确定类型,%v 可以输出所有类型的值。例如:
      logx.Infof("Result: %v", result)
      
  2. 输出结构体

    • 如果想要查看结构体的详细信息,可以使用 %+v 输出字段名和值,或者使用 %#v 输出 Go 语言格式的值。例如:
      logx.Infof("Struct data: %+v", myStruct)
      logx.Infof("Go syntax: %#v", myStruct)
      
  3. 输出字符串

    • 一般使用 %s 输出字符串;如果需要输出带双引号和转义字符的安全字符串,使用 %q。例如:
      logx.Infof("User input: %s", input)
      logx.Infof("Escaped string: %q", input)
      
  4. 输出整数

    • 使用 %d 输出十进制整数,如果需要以二进制或十六进制表示,可以分别使用 %b%x。例如:
      logx.Infof("User age: %d", age)
      logx.Infof("Memory address in hex: %x", pointer)
      
  5. 输出浮点数

    • 一般使用 %f 输出浮点数,输出带有小数部分;如果需要科学计数法表示,使用 %e%E。例如:
      logx.Infof("Price: %f", price)
      logx.Infof("Price in scientific notation: %e", price)
      
  6. 输出指针

    • 如果你需要输出一个指针的值,使用 %p 会显示其十六进制地址。例如:
      logx.Infof("Pointer address: %p", &myVar)
      

实际案例:

假设我们有如下数据:

taskID := 12345
price := 1234.567
name := "Alice"
completed := true
myStruct := struct {ID   intName string
}{ID:   1,Name: "TestTask",
}

使用占位符输出:

logx.Infof("Task ID: %d", taskID)                // 输出十进制整数
logx.Infof("Price: %f", price)                   // 输出浮点数
logx.Infof("User: %s", name)                     // 输出字符串
logx.Infof("Task completed: %t", completed)      // 输出布尔值
logx.Infof("Task info: %+v", myStruct)           // 输出结构体,带字段名和值

占位符一览表:

占位符说明示例
%v默认格式logx.Infof("%v", 42)
%+v结构体字段和值logx.Infof("%+v", obj)
%#vGo 语法表示值logx.Infof("%#v", obj)
%T输出值的类型logx.Infof("%T", obj)
%d十进制整数logx.Infof("%d", 123)
%b二进制整数logx.Infof("%b", 7)
%x十六进制小写logx.Infof("%x", 255)
%f浮点数logx.Infof("%f", 3.14)
%t布尔值logx.Infof("%t", true)
%p指针地址logx.Infof("%p", ptr)
%s字符串logx.Infof("%s", "abc")
%q带双引号的字符串logx.Infof("%q", "abc")

通过根据数据类型选择正确的占位符,可以确保输出信息的格式化和可读性。

相关文章:

Go 语言中的格式化占位符

在 Go 语言中,fmt 包提供了大量的格式化占位符,用于格式化输出不同类型的数据。选择合适的占位符,可以确保输出的内容格式正确、清晰易懂。 常见的占位符: 基本类型 %v:按值的默认格式输出。适用于任何类型。%v&…...

QD1-P5 HTML 段落标签(p)换行标签(br)

本节视频 www.bilibili.com/video/BV1n64y1U7oj?p5 ‍ 本节学习 HTML 标签&#xff1a; p标签 段落br标签 换行 ‍ 一、p 标签-段落 1.1 使用 p 标签划分段落 <p>段落文本</p>示例 <!DOCTYPE html> <html><head><meta charset"…...

Django的模板语法

Django的模板语法 1、初步认识2、原理 1、初步认识 本质上&#xff1a;在HTML中写一些占位符&#xff0c;由数据对这些占位符进行替换和处理。 在views.py中用字典&#xff08;键值对&#xff09;的形式传参&#xff0c;在html文件中用两个花括号来显示单独的值 列表、元组等数…...

【在Linux世界中追寻伟大的One Piece】信号捕捉|阻塞信号

目录 1 -> 信号捕捉初识 2 -> 阻塞信号 2.1 -> 信号其他相关常见概念 2.2 -> 在内核中的表示 2.3 -> sigset_t 2.4 -> 信号集操作函数 2.5 -> sigprocmask 2.6 -> sigpending 3 -> 捕捉信号 3.1 -> 内核如何实现信号的捕捉 3.2 ->…...

信息系统运维管理方案,运维建设文档,运维平台建设方案,软件硬件中间件运维方案,信息安全管理(原件word,PPT,excel)

建设方案目录&#xff1a; 1、智慧运维系统建设背景 2、智慧运维系统建设目标 3、智慧运维系统建设内容 4、智慧运维系统建设技术 5、智慧运维系统建设流程 6、智慧运维系统建设收益 企业对运维管理的需求&#xff1a; 1、提高运维效率&#xff1a;降低运维成本&#xff0c;提高…...

多元统计实验报告内容

1 实验内容 实验目的: 利用R软件进行一些简单的数学运算,通过对简单统计量函数的操作了解R语言的基本操作过程,从而对R语言形成初步的认识。 实验项目名称: R语言软件的安装。R语言中赋值语句的练习。 在R中<-表示赋值,c()表示数组,X1<-c()即表示将一组数据赋…...

使用机器学习边缘设备的快速目标检测

论文标题&#xff1a;Fast Object Detection with a Machine Learning Edge Device 中文标题&#xff1a;使用机器学习边缘设备的快速目标检测 作者信息&#xff1a; Richard C. Rodriguez, MSDA Information Systems and Cyber Security Department, The University of Tex…...

Anthropic的CEO达里奥·阿莫迪(Dario Amodei)文章传达他对AI未来的乐观展望

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

Human-M3 多模态姿态估计数据集-初步解读

文章概述(个人总结):该论文重点提出一个用于人体姿态估计的RGB+点云数据集,针对该多模态数据集,作者阐述了数据集的收集、数据标注以及该数据集的特点。并提出了一个简单的多模态3D人体姿态估计算法,对比其他模型,该方法性能较好。最后总结了该数据集和该方法的限制。 …...

python爬虫 - 进阶正则表达式

&#x1f308;个人主页&#xff1a;https://blog.csdn.net/2401_86688088?typeblog &#x1f525; 系列专栏&#xff1a;https://blog.csdn.net/2401_86688088/category_12797772.html 目录 前言 一、匹配中文 &#xff08;一&#xff09;匹配单个中文字符 &#xff08;二…...

静态路由和nqa 联动实验

nqa 配置 1 test 断端口 很明显是切换到备机上了...

golang用any类型去接收前端传的数字类型的值,类型断言为float64

在 Go 中&#xff0c;使用 any 类型接收前端传来的数字时&#xff0c;通常会发现其被类型断言为 float64。这是因为在 JSON 解码的过程中&#xff0c;Go 的 encoding/json 包会将数字解析为 float64。但如果你在结构体中指明字段为 int 类型&#xff0c;框架会根据字段类型进行…...

5、Spring Boot 3.x 集成 RabbitMQ

一、前言 本篇主要是围绕着 Spring Boot 3.x 与 RabbitMQ 的集成&#xff0c;这边文章比较简单&#xff0c;RabbitMQ 的集成没有太大的变化&#xff0c;这篇文章主要是为了后续的 RabbitMQ 的动态配置做铺垫。 1、Docker 安装 RabbitMQ 2、Spring Boot 3.x 集成 RabbitMQ二、D…...

ENSP搭建基础网络拓扑图

一、ENSP的基本操作 1、配置网关 进入系统视图与退出 <Huawei>system-view [Huawei]quit 进入G0/0/0接口后配置ip [R1]interface GigabitEthernet 0/0/0 [R1-GigabitEthernet0/0/0]ip address 192.168.1.1 24查询所有接口的ip配置 [R1]display ip interface brief…...

尚硅谷rabbitmq 2024 消息可靠性答疑二 第22节

returnedMessage()只有失败才调用&#xff0c;confirm()成功失败了都会调用&#xff0c;为什么&#xff1f; 在RabbitMQ中&#xff0c;消息的确认和返回机制是为了确保消息的可靠传递和处理。confirm和returnedMessage方法的调用时机和目的不同&#xff0c;因此它们的行为也有…...

在 Ubuntu 上安装 Whisper 支撑环境(ffmpeg、PyTorch)的教程(2024亲测可用)

在 Ubuntu 上安装 Whisper 的教程 以下是如何在 Ubuntu 系统上安装 Whisper 以进行视频转录的详细步骤。 步骤 1&#xff1a;更新系统 首先更新你的 Ubuntu 系统&#xff0c;确保安装最新的软件包&#xff1a; sudo apt update && sudo apt upgrade -y步骤 2&#…...

vue+echarts实现雷达图及刻度标注

文章目录 前言代码实现实现效果总结 前言 最近项目有做数据可视化 大屏 不免再次使用些echarts应用 记录下其中echarts雷达图的实现 代码实现 先上代码 <template><div class"container"><div ref"chart" style"width: 500px; heig…...

【进阶OpenCV】 (9)--摄像头操作--->答题卡识别改分项目

文章目录 项目&#xff1a;答题卡识别改分1. 图片预处理2. 描绘轮廓3. 轮廓近似4. 透视变换5. 阈值处理6. 找每一个圆圈轮廓7. 将每一个圆圈轮廓排序8. 找寻所填答案&#xff0c;比对正确答案8.1 思路8.2 图解8.3 代码体现 9. 计算正确率 总结 项目&#xff1a;答题卡识别改分 …...

实时从TDengine数据库采集数据到Kafka Topic

实时从TDengine数据库采集数据到Kafka Topic 一、认识TDengine二、TDengine Kafka Connector三、什么是 Kafka Connect&#xff1f;四、前置条件五、安装 TDengine Connector 插件六、启动 Kafka七、验证 kafka Connect 是否启动成功八、TDengine Source Connector 的使用九、添…...

Linux -- 初识动静态库

目录 为什么要有库&#xff1f; 静态库 什么是静态库&#xff1f; 特点 优点 缺点 动态库 什么是动态库&#xff1f; 优点 缺点 编译器会选择哪个库&#xff1f; 为什么要有库&#xff1f; 库的存在是为了提高软件开发的效率、促进代码复用以及简化维护工作。通过使用…...

Nginx + FFmpeg 核心配置

Nginx FFmpeg 核心配置&#xff08;2 种最实用方案&#xff09;我给你最简、能直接用的配置&#xff0c;不用你自己改半天&#xff0c;分两种场景&#xff1a;Nginx 接收 FFmpeg 推流&#xff08;直播&#xff09;Nginx 调用 FFmpeg 自动转码&#xff08;高清 / 标清&#xff…...

Kafka消费者在大数据生态中的集成:从数据湖到AI管道的完整架构

一、引言在数字化转型的浪潮中&#xff0c;企业对数据处理的需求已从传统的批处理模式转向实时化、高并发的场景。无论是金融风控中的毫秒级欺诈检测、电商交易中的个性化实时推荐&#xff0c;还是物联网监控中的异常预警&#xff0c;实时数据流处理能力已成为业务竞争力的核心…...

嵌入式监控DIY:用RV1126开发板和任意UVC摄像头搭建低成本RTSP视频服务器

嵌入式监控DIY&#xff1a;用RV1126开发板和任意UVC摄像头搭建低成本RTSP视频服务器 在智能家居和工业物联网快速发展的今天&#xff0c;视频监控系统的需求日益增长。传统监控方案往往价格昂贵且灵活性不足&#xff0c;而基于嵌入式开发板和普通USB摄像头的DIY方案则提供了高性…...

微信小程序支付V3接口在ThinkPHP6中的封装实践:如何设计一个可复用的支付服务类?

微信小程序支付V3接口在ThinkPHP6中的高复用封装实践 微信支付作为小程序生态中最核心的商业化能力&#xff0c;其技术实现的质量直接影响着用户体验和系统稳定性。本文将分享如何在ThinkPHP6框架下&#xff0c;从零构建一个符合SOLID原则的支付服务类&#xff0c;实现一次封装…...

实测分享:Claude+万象熔炉组合,抽象概念也能变成具体画面

实测分享&#xff1a;Claude万象熔炉组合&#xff0c;抽象概念也能变成具体画面 你有没有过这样的体验&#xff1f;脑子里突然冒出一个绝妙的画面&#xff0c;可能是昨晚梦里的一个片段&#xff0c;也可能是读到某段文字时脑海中浮现的场景。你想把它画下来&#xff0c;但拿起…...

开源剧本AI落地实操:像素剧本圣殿+Dual-GPU并行推理完整教程

开源剧本AI落地实操&#xff1a;像素剧本圣殿Dual-GPU并行推理完整教程 1. 项目概览 像素剧本圣殿&#xff08;Pixel Script Temple&#xff09;是一款基于Qwen2.5-14B-Instruct深度微调的专业剧本创作工具。这个开源项目将先进的AI推理能力与独特的8-Bit复古美学相结合&…...

Zotero中文文献管理终极指南:茉莉花插件一键解决三大痛点

Zotero中文文献管理终极指南&#xff1a;茉莉花插件一键解决三大痛点 【免费下载链接】jasminum A Zotero add-on to retrive CNKI meta data. 一个简单的Zotero 插件&#xff0c;用于识别中文元数据 项目地址: https://gitcode.com/gh_mirrors/ja/jasminum 如果你正在使…...

Qwen3.5-35B-A3B-AWQ-4bit企业应用:HR招聘简历图识别+关键资质自动核验系统

Qwen3.5-35B-A3B-AWQ-4bit企业应用&#xff1a;HR招聘简历图识别关键资质自动核验系统 1. 企业招聘场景的痛点分析 在传统HR招聘流程中&#xff0c;简历筛选和资质核验是最耗费人力的环节之一。每天面对堆积如山的纸质简历和PDF文件&#xff0c;HR需要&#xff1a; 手动翻阅…...

OWL ADVENTURE Node.js环境配置与模型服务封装

OWL ADVENTURE Node.js环境配置与模型服务封装 1. 引言 如果你是一名Node.js开发者&#xff0c;最近对AI模型服务感兴趣&#xff0c;想把像OWL ADVENTURE这样的模型集成到自己的应用里&#xff0c;那你来对地方了。你可能已经看过一些模型介绍&#xff0c;知道它功能挺强&…...

千问3.5-2B快速部署:Docker镜像一键run,7860端口自动监听,无需端口映射配置

千问3.5-2B快速部署&#xff1a;Docker镜像一键run&#xff0c;7860端口自动监听&#xff0c;无需端口映射配置 1. 千问3.5-2B模型介绍 千问3.5-2B是Qwen系列的小型视觉语言模型&#xff0c;它能够同时理解图片和生成文本。这个模型特别适合需要结合视觉和语言理解的任务场景…...