当前位置: 代码网 > it编程>前端脚本>Golang > Go语言占位符的使用

Go语言占位符的使用

2024年09月08日 Golang 我要评论
golang的字符串占位符在fmt包的各种打印函数中使用,如fmt.printf、fmt.sprintf。变量值与类型的打印%v: 打印变量的值%v会根据变量的类型选择合适的格式进行打印。对于结构体,

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: 布尔值(true 或 false

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

运行如上代码,输出

布尔值: true

其他

%%: 字面上的百分号(%
%uunicode 格式: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 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}

到此这篇关于go语言占位符的使用的文章就介绍到这了,更多相关go语言占位符内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com