【Go语言】Go语言的占位符

Go语言的占位符

Golang 的字符串占位符在 fmt 包的各种打印函数中使用,如 fmt.Printffmt.Sprintf

变量值与类型的打印

%v: 打印变量的值

  • %v 会根据变量的类型选择合适的格式进行打印。
  • 对于结构体,%v 会打印出结构体的字段。
  • 对于指针类型,会打印出指针指向的值。

%T: 打印变量的类型

  • %T 会打印出变量的具体类型。
x := 42
y := "hello"
z := 3.14
fmt.Printf("x: %v, 类型: %T\n", x, x)
fmt.Printf("y: %v, 类型: %T\n", y, y)
fmt.Printf("z: %v, 类型: %T\n", z, z)

运行如上代码,输出

x: 42, 类型: int
y: hello, 类型: string
z: 3.14, 类型: float64

整数

%d 十进制表示
%b 二进制表示
%o 八进制表示
%x%X 十六进制表示(%x 小写字母、%X 大写字母)

n := 42
fmt.Printf("十进制: %d\n", n)
fmt.Printf("二进制: %b\n", n)
fmt.Printf("八进制: %o\n", n)
fmt.Printf("十六进制(小写): %x\n", n)
fmt.Printf("十六进制(大写): %X\n", n)

运行如上代码,输出

十进制: 42
二进制: 101010
八进制: 52
十六进制(小写): 2a
十六进制(大写): 2A

浮点数和整数

%f 有小数点的十进制表示
%e%E 科学计数法
%g, %G: 根据情况选择 %f%e (%g 使用小写字母,%G 使用大写字母)

f := 3.1415926
fmt.Printf("浮点数: %f\n", f)
fmt.Printf("科学计数法(小写): %e\n", f)
fmt.Printf("科学计数法(大写): %E\n", f)

运行如上代码,输出

浮点数: 3.141593
科学计数法(小写): 3.141593e+00
科学计数法(大写): 3.141593E+00

字符串和字节切片

%s: 直接输出字符串或字节切片
%q: 使用双引号括起来的字符串
%x, %X: 每个字节用两字符的十六进制表示

s := "hello"
fmt.Printf("字符串: %s\n", s)
fmt.Printf("带引号的字符串: %q\n", s)
fmt.Printf("每个字节用十六进制表示(小写): %x\n", s)
fmt.Printf("每个字节用十六进制表示(大写): %X\n", s)

运行如上代码,输出

字符串: hello
带引号的字符串: "hello"
每个字节用十六进制表示(小写): 68656c6c6f
每个字节用十六进制表示(大写): 68656C6C6F

指针

%p: 指针地址

t := 100
p := &t
fmt.Printf("指针地址: %p\n", p)

运行如上代码,输出

指针地址: 0xc00001a128

布尔值

%t: 布尔值(truefalse

b := true
fmt.Printf("布尔值: %t\n", b)

运行如上代码,输出

布尔值: true

其他

%%: 字面上的百分号(%
%U: Unicode 格式:U+1234
%c: 字符(对应 Unicode 码点)
%v, %+v, %#v: 通用的占位符
%v: 值的默认格式表示
%+v: 类似 %v,但会打印结构体的字段名
%#v: 值的 Go 语言语法表示

fmt.Printf("百分号: 100%%\n")// 定义如下 Unicode 字符
var char1 rune = 'A'
var char2 rune = '中'
var char3 rune = '😊'// 使用 %U 格式化输出 Unicode 码点
fmt.Printf("char1: %c Unicode: %U\n", char1, char1)
fmt.Printf("char2: %c Unicode: %U\n", char2, char2)
fmt.Printf("char3: %c Unicode: %U\n", char3, char3)type Person struct {Name stringAge  int
}person := Person{Name: "Alice",Age:  30,
}fmt.Printf("值的默认格式表示: %v\n", person)
fmt.Printf("值带结构体的字段名表示: %+v\n", person)
fmt.Printf("值的Go语言语法表示: %#v\n", person)

运行如上代码,输出

百分号: 100%
char1: A Unicode: U+0041
char2: 中 Unicode: U+4E2D
char3: 😊 Unicode: U+1F60A
值的默认格式表示: {Alice 30}
值带结构体的字段名表示: {Name:Alice Age:30}
值的Go语言语法表示: main.Person{Name:"Alice", Age:30}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 网络--TCP协议收包流程(NAPI机制)

Linux 网络--TCP协议收包流程(NAPI机制) 平台环境简介:宿主机: ubuntu18.04Linux内核源码版本: Linux-4.15网卡驱动: Intel e1000 (ubuntu 虚拟机默认网卡驱动)协议:TCP协议,本文分析收包过程 本…

缓存新境界:Eureka中服务的分布式缓存实现策略

缓存新境界:Eureka中服务的分布式缓存实现策略 引言 在微服务架构中,服务间的通信和数据交换频繁,引入分布式缓存可以显著提高系统性能和响应速度。Eureka作为Netflix开源的服务发现框架,虽然本身不提供缓存机制,但可…

【线程状态-2】

1、线程礼让 (1)礼让线程,让当前正在执行的线程暂停,但不阻塞 (2)将线程从运行状态转为就绪状态 (3)让cpu重新调度,礼让不一定成功!看cpu心情 package st…

单对以太网:工业4.0时代的通信革命

单对以太网连接器概述 单对以太网(Single Pair Ethernet,简称SPE)是一种新兴的以太网技术,它通过一对双绞线实现数据传输,支持PoDL(Power over Data Line)技术,为终端设备提供电力供…

【AI工具介绍】— webkit简介

目录 一、起源与发展 二、核心组件与功能 三、特性与优势 四、应用与影响 五、结论 一、起源与发展 WebKit起源于苹果公司,最初是为了开发Safari浏览器而创建的。WebKit项目的起源可以追溯到苹果公司在2001年推出基于Unix的操作系统Mac OS X时,对浏…

windows JDK11 与JDK1.8自动切换,以及切换后失效的问题

1.windows安装不同环境的jdk 2.切换jdk 3.切换失败 原因:这是因为当我们安装并配置好JDK11之后它会自动生成一个环境变量(此变量我们看不到),此环境变量优先级较高,导致我们在切换回JDK8后系统会先读取到JDK11生成的…

Java项目:基于SSM框架实现的中小型企业财务管理系统【ssm+B/S架构+源码+数据库+答辩PPT+开题报告+毕业论文】

一、项目简介 本项目是一套基于SSM框架实现的中小型企业财务管理系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简单…

Spark实现电商消费者画像案例

作者/朱季谦 故事得从这一张图开始说起—— 可怜的打工人准备下班时,突然收到领导发来的一份电商消费者样本数据,数据内容是这样的—— 消费者姓名|年龄|性别|薪资|消费偏好|消费领域&#x…

CentOS 7:停止更新后如何下载软件?

引言 CentOS 7 是一个广受欢迎的 Linux 发行版,它为企业和开发者提供了一个稳定、安全、且免费的操作系统环境。然而,随着时间的推移,CentOS 7 的官方支持已经进入了维护阶段,这意味着它将不再收到常规的更新和新功能,…

图像类别生成数字标签

类别 COCO 2017数据集分类标签。coco2017数据集下载。 cls [background, person, bicycle, car, motorcycle, airplane, bus,train, truck, boat, traffic light, fire hydrant,stop sign, parking meter, bench, bird, cat, dog,horse, sheep, cow, elephant, bear, zebra,…

2024建博会|博联AI大模型全屋智能引领智能体验新纪元

7月8日,2024中国建博会(广州)在广交会展馆及保利世贸博览馆盛大启幕。BroadLink博联智能携AI大模型全屋智能以及AI商业照明解决方案惊喜亮相,全方位展示AI大模型在智能家居领域的前沿应用成果。 本次建博会,博联智能带…

java.lang.annotation包介绍

java.lang.annotation 包是 Java 标准库中的一个核心包,专门用于定义和支持 Java 注解(Annotation)。该包中包含了一些核心的接口和枚举类型,用于定义和控制注解在 Java 程序中的行为和使用方式。 主要的类和接口 Annotation 接口 java.lang.annotation.Annotation 所有注…

NPDP含金量高吗?什么人适合学习NPDP?

PMP考完了,最近在考NPDP,这也是一个有意思的证书,含金量还不错,非常适合想转型和升级的人来考。 一、NPDP是什么 NPDP其实就是产品经理国际资格认证(New Product Development Professional),是…

C++惯用法: 通过std::decltype来SFINAE掉表达式

目录 1.什么是SFINAE 2.SFINAE(替换失败不是错误) 3.通过std::decltype来SFINAE掉表达式 1.什么是SFINAE SFINAE 技术,即匹配失败不是错误,英文Substitution Failure Is Not An Error,其作用是当我们在进行模板特化的时候,会去…

嵌入式c语言——指针加修饰符

指针变量可以用修饰符来修饰

量化交易常用名词介绍(七)——模块篇

目录 七、模块篇 1. NumPy 2. pandas 3. matplotlib 4. scikit-learn 5. TensorFlow 6. TA-Lib 7. statsmodels 8. Backtrader 9. PyPortfolioOpt 10. Zipline 七、模块篇 在量化交易中,Python 及其丰富的库生态系统提供了强大的支持。以…

Redis部署和基础命令

一、Redis基本概念 1.1 Redis简介 Redis(远程字典服务器) 是一个开源的、使用 C 语言编写的 NoSQL 数据库。 Redis 基于内存运行并支持持久化,采用key-value(键值对)的存储形式,是目前分布式架构中不可或…

python爬虫之scrapy基于管道持久化存储操作

python爬虫之scrapy基于管道持久化存储操作 本文基于python爬虫之基于终端指令的持久化存储和python爬虫之数据解析操作而写 scrapy持久化存储 基于管道: 编码流程: 1、数据解析 2、在item类中定义相关属性 3、将解析的数据封装存储到item类型的对象 4、…

Linux内核 -- 内存管理之scatterlist结构使用

Linux Kernel Scatterlist 使用指南 1. 简介 scatterlist 结构在 Linux 内核中主要用于 DMA(直接内存访问)操作中的内存管理。它允许将不连续的物理内存片段表示为一个逻辑上的连续块,从而使 DMA 操作可以高效地处理这些不连续的内存片段。…

【问题记录】VsCode中以管理员权限运行Powershell

问题展示 今天在尝试运行nodemon命令的时候出问题,显示没法识别,经过分析发现是管理员权限的问题,由于是在vscode里面进行开发,因此特此进行配置。 方法一 直接在vscode命令行中输入如下命令: Start-Process powers…