Loading... # golang 中 printf 占位符详解 ## 通用占位符 在Go中,最常用的占位符是`%v`,它可以用于打印任何类型的数据。当你不确定该使用哪个占位符时,可以尝试使用`%v`,它会自动根据变量的类型选择适当的格式进行打印。 ```go name := "Alice" age := 25 fmt.Printf("name: %v, age: %v\n", name, age) ``` 输出: ```go name: Alice, age: 25 ``` ## 整数占位符 Go中常用的整数占位符包括: - `%d`:十进制格式 - `%b`:二进制格式 - `%o`:八进制格式 - `%x`和`%X`:十六进制格式 这些占位符可以用于打印不同进制的整数: ```go num := 42 fmt.Printf("%d %b %o %x %X\n", num, num, num, num, num) ``` 输出: ```go 42 101010 52 2a 2A ``` ## 浮点数占位符 Go中常用的浮点数占位符包括: - `%f`:默认格式,保留6位小数 - `%e`和`%E`:科学计数法格式 - `%g`和`%G`:自动选择%f或%e/%E格式 这些占位符可以用于打印不同格式的浮点数: ```go pi := 3.14159265358979323846 fmt.Printf("%f\n", pi) fmt.Printf("%.2f\n", pi) fmt.Printf("%e\n", pi) fmt.Printf("%.3E\n", pi) fmt.Printf("%g\n", pi) ``` 输出: ```go 3.141593 3.14 3.141593e+00 3.142E+00 3.141592653589793 ``` ## 字符串占位符 Go中常用的字符串占位符是`%s`,它可以用于打印字符串: ```go name := "Alice" fmt.Printf("name: %s\n", name) ``` 输出: ```go makefile name: Alice ``` ## 布尔占位符 Go中的布尔类型可以用`%t`占位符进行打印: ```go isGo := true fmt.Printf("isGo: %t\n", isGo) ``` 输出: ```go vbnet isGo: true ``` ## 指针占位符 在Go中,可以使用`%p`占位符打印指针地址: ```go num := 42 fmt.Printf("address of num: %p\n", &num) ``` 输出: ```go css address of num: 0xc0000120a0 ``` ## 宽度和精度 在Go中,可以使用占位符的宽度和精度来控制打印的格式。 ## 宽度 宽度用于控制打印的最小字符数。如果要打印的字符串长度小于指定的宽度,则在打印的字符串前面添加空格。如果要打印的字符串长度大于指定的宽度,则按照字符串的实际长度打印。宽度可以用数字表示。 ```go name := "Alice" fmt.Printf("|%5s|\n", name) fmt.Printf("|%10s|\n", name) ``` 输出: ```go |Alice| | Alice| ``` ## 精度 精度用于控制浮点数、字符串等类型的输出精度。对于浮点数类型,精度表示小数点后的位数;对于字符串类型,精度表示打印的最大字符数。精度可以用`.`表示。 ```go pi := 3.14159265358979323846 fmt.Printf("%.2f\n", pi) name := "Alice" fmt.Printf("%.3s\n", name) ``` 输出: ```go 3.14 Ali ``` ## 宽度和精度组合使用 宽度和精度可以组合使用,用于控制打印的格式。在占位符中,宽度在精度前面。 ```go pi := 3.14159265358979323846 fmt.Printf("|%8.2f|\n", pi) name := "Alice" fmt.Printf("|%.4s|\n", name) fmt.Printf("|%10.5s|\n", name) ``` 输出: ```go | 3.14| |Alic| | Alice| ``` ## 其他占位符 除了上面介绍的常用占位符之外,Go还提供了一些其他占位符,用于打印不同类型的数据: - `%c`:打印字符 - `%q`:打印带有双引号的字符串 - `%U`:打印Unicode格式 - `%T`:打印变量的类型 ```go ch := 'a' fmt.Printf("%c\n", ch) fmt.Printf("%q\n", "Hello, world!") fmt.Printf("%U\n", ' ``` 猜你想看 handsome美化-持续更新 Vue组件的使用 宝塔反向代理,自建CDN节点 封装ajax请求 Typecho 图片水印插件Watermark - 为你的博客图片添加专属水印 给网站更换HarmonySanc字体 vscode配置备份 TS自动运行+Parcel打包 发现未知可能性!小小API引领你的创新之旅! Linux搭建我的世界服务器教程 最后修改:2023 年 02 月 19 日 © 允许规范转载 赞 0 如果觉得我的文章对你有用,请随意赞赏