广告位联系
返回顶部
分享到

Go语言占位符的使用介绍

Golang 来源:互联网 作者:佚名 发布时间:2024-08-17 22:08:42 人浏览
摘要

Golang的字符串占位符在fmt包的各种打印函数中使用,如fmt.Printf、fmt.Sprintf。 变量值与类型的打印 %v: 打印变量的值 %v会根据变量的类型选择合适的格式进行打印。 对于结构体,%v会打印出结构

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

变量值与类型的打印

%v: 打印变量的值

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

%T: 打印变量的类型

  • %T 会打印出变量的具体类型。

1

2

3

4

5

6

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 大写字母)

1

2

3

4

5

6

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 使用大写字母)

1

2

3

4

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: 每个字节用两字符的十六进制表示

1

2

3

4

5

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: 指针地址

1

2

3

t := 100

p := &t

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

运行如上代码,输出

指针地址: 0xc00001a128

布尔值

%t: 布尔值(true 或 false)

1

2

b := true

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

运行如上代码,输出

布尔值: true

其他

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

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 string

    Age  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}


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • Go语言等待组sync.WaitGrou的使用
    Go语言中除了可以使用通道(channel)和互斥锁进行两个并发程序间的同步外,还可以使用等待组进行多个任务的同步,等待组可以保证在并
  • Go语言中的接口类型介绍
    接口(interface)定义了一个对象的行为规范,只定义规范不实现,由具体的对象来实现规范的细节。 1.接口类型 1.1 接口类型的说明 Go语言中
  • Go语言占位符的使用介绍
    Golang的字符串占位符在fmt包的各种打印函数中使用,如fmt.Printf、fmt.Sprintf。 变量值与类型的打印 %v: 打印变量的值 %v会根据变量的类型选择
  • 基于Golang实现Kubernetes边车模式

    基于Golang实现Kubernetes边车模式
    在这篇文章中,我们会介绍 Sidecar 模式,并创建两个基于 Go 的容器化微服务,然后部署到 Kubernetes 上。 什么是 Sidecar 模式? Sidecar 模式是一
  • 使用Go语言实现基于泛型的Jaccard相似度算法

    使用Go语言实现基于泛型的Jaccard相似度算法
    基本原理 跳表: jaccard相似度: jaccard相似度的代码实现: 时间复杂度分析: 快速jaccard算法: 代码实现,这个要求两个集合都是有序的:
  • go-zero自定义中间件的几种方式
    1.通过 api 文件生成并填入具体逻辑 定义 api 首先你需要在 api 文件中定义你需要的路由位置和中间件的名字: 1 2 3 4 5 6 7 8 9 // test for ping @
  • Go中gin框架的*gin.Context参数常见实用方法
    梗概: *gin.Context是处理HTTP请求的核心。ctx代表context(上下文),它包含了处理请求所需的所有信息和方法,例如请求数据、响应构建器、
  • Python实现图像添加水印的方法
    在日常图像处理中,为图片添加水印是一项常见任务。有多种方法和工具可供选择,而今天我们将专注于使用Python语言结合PIL库批量添加水
  • go的defer和return的执行顺序介绍
    go的defer和return的执行顺序 go的defer和return是golang中的两个关键字,return用于返回函数的返回值,也可以参与一定的流程控制,比如下面代码
  • 使用go语言实现Redis持久化的代码
    redis是一个内存数据库,如果你把进程杀掉,那么里面存储的数据都会消失,那么这篇文章就是来解决redis持久化的问题 我们在redis.conf文件
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计