首页 > 其他分享 >golang占位符%v、%+v、%#v详解

golang占位符%v、%+v、%#v详解

时间:2024-11-05 14:32:40浏览次数:1  
标签:Name %+ fmt %# golang Person main Age

目录

在 Go 语言中,fmt 包提供了格式化字符串的功能,类似于 C 语言的 printf 函数。fmt 包中的 %v%+v%#v 是用于格式化输出的占位符,它们各自有不同的用途。


%v

  • 含义%v 表示以默认格式(值)输出变量。对于基本类型如整数、浮点数等,它会直接输出其值;对于结构体,它会输出各个字段的值。
  • 例子
    package main
    
    import (
        "fmt"
    )
    
    type Person struct {
        Name string
        Age  int
    }
    
    func main() {
        p := Person{Name: "Alice", Age: 30}
        fmt.Printf("%v\n", p) // 输出:{Alice 30}
    }
    

%+v

  • 含义%+v 类似于 %v,但是当输出结构体时,还会包含每个字段的名字。这在调试时非常有用,可以更清楚地看到结构体内部的布局。
  • 例子
    package main
    
    import (
        "fmt"
    )
    
    type Person struct {
        Name string
        Age  int
    }
    
    func main() {
        p := Person{Name: "Alice", Age: 30}
        fmt.Printf("%+v\n", p) // 输出:{Name:Alice Age:30}
    }
    

%#v

  • 含义%#v 会以 Go 语法格式输出变量,即输出的结果可以直接用来创建一个相同类型的变量。这对于复制粘贴代码或记录原始数据结构特别有帮助。
  • 例子
    package main
    
    import (
        "fmt"
    )
    
    type Person struct {
        Name string
        Age  int
    }
    
    func main() {
        p := Person{Name: "Alice", Age: 30}
        fmt.Printf("%#v\n", p) // 输出:main.Person{Name:"Alice", Age:30}
    }
    

标签:Name,%+,fmt,%#,golang,Person,main,Age
From: https://www.cnblogs.com/yubo-guan/p/18527830

相关文章

  • [AAAI2024]AnomalyGPT Detecting Industrial Anomalies Using Large Vision-Language
    本篇论文将大语言模型应用在工业异常检测(IndustrialAnomalyDetection,IAD)任务。引言IAD任务旨在检测和定位工业产品图像中的异常。由于现实世界样本的稀有性和不可预测性,要求模型仅在正常样本上进行训练,并实现对测试时异常样本的检测。如图1,现有的IAD方法给出异常样本的概率,......
  • 【洛谷 P3695 CYaRon!语】从一道大模拟入坑自制编程语言
    原题传送门本来是想投题解的,但是仔细阅读了一下主题库题解规范,发现这篇文章更加适合单独作为一篇blog阅读而非挂在题解区里污染环境,所以就这样了。0xff开始之前这道题我很早以前就开始看了,那时还只有星野梦美大佬的一篇题解。而到现在,我终于是有了时间和能力来切掉这道题,......
  • Sealos Devbox 使用教程:使用 Cursor 开发一个高仿苹果官网
    ......
  • NVR设备ONVIF接入平台EasyCVR多品牌摄像机视频平台视频监控如何解码上墙?
    在做智能化监控系统时,最容易出成果的一个阶段就是视频监控系统解码上墙,监控画面出来后,且摄像头画面清晰,建设方看到效果就会很满意,反之摄像头画面出不来或者图像出来模糊不清,前面再多的努力也白搭。今天我们就一起来聊聊视频监控上墙的问题。一、拼接屏现在市场主流的拼接屏尺寸......
  • 易基因: RNA-BS揭示动物不同发育阶段的mRNA m5C甲基化图谱和调控机制|Nat Commun
    大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。m5C是已知的RNA修饰之一,但其在mRNA中的发育动态、功能和进化仍然知之甚少。最初报道m5C在mRNA中普遍存在,但后来认识到许多最初被鉴定的位点可能假阳性。准确和系统地检测转录组范围mRNAm5C水平一直具有挑战性,缺乏对m......
  • git命令
    添加远程仓库:gitremoteadd远程仓库名地址从仓库clone项目:gitclone地址(真正的拉全部代码,后续都是在基于代码改变动)初始化本地仓库:gitinit添加所有文件到暂存区:gitadd.提交初始更改:gitcommit-m"xxx"添加远程仓库:gitremoteadd远程仓库名地址(这里origin是开发者在......
  • 【红队武器库】有效载荷开发策略
    原创Ots安全在不断发展的网络安全格局中,红队在评估组织的安全态势方面发挥着关键作用。在这篇博文中,我们重点介绍红队的一个重要方面:有效载荷开发策略。红队工具包系列将继续探索旨在将红队行动提升到新高度的强大工具、框架和脚本。有效载荷开发策略:1.Ivy描述:Ivy是一个......
  • 11.8
    阅读教材第一章复习UML,回答下述问题:面向对象程序设计中类与类的关系都有哪几种?分别用类图实例说明。关联关系(1).单相关联学生可以选修课程,但课程不需要知道哪些学生选修了它。(2).双向关联(3).自关联关系以公司的组织结构为例,一个员工可以是另一个员工的管理者。(4).......
  • 迅为RK3588开发板Android多屏显示之多屏同显和多屏异显
       迅为RK3588开发板是一款低功耗、高性能的处理器,适用于基于arm的PC和Edge计算设备、个人移动互联网设备等数字多媒体应用,RK3588支持8K视频编解码,内置GPU可以完全兼容OpenGLES1.1、2.0和3.2。RK3588引入了新一代完全基于硬件的最大4800万像素ISP,内置NPU,支持INT4/INT8/INT1......
  • 文件下载方法(直接下载与请求下载)
     直接下载:适用于简单场景,不发送请求直接使用浏览器获取文件/***@description:下载图片/文件*@return{*}*/exportconstdownload=(url='',newUrl)=>{constiframe=document.createElement('a');if(newUrl){iframe.href=newUrl;}else{......