Go 格式化動詞
Printf() 的格式化動詞
Go 提供了幾個可與 Printf()
函式一起使用的格式化動詞。
通用格式化動詞
以下動詞可用於所有資料型別
動詞 | 描述 |
---|---|
%v | 以預設格式列印值 |
%#v | 以 Go 語法格式列印值 |
%T | 列印值的型別 |
%% | 列印 % 符號 |
示例
package main
import ("fmt")
func main() {
var i = 15.5
var txt = "Hello World!"
fmt.Printf("%v\n", i)
fmt.Printf("%#v\n", i)
fmt.Printf("%v%%\n", i)
fmt.Printf("%T\n", i)
fmt.Printf("%v\n", txt)
fmt.Printf("%#v\n", txt)
fmt.Printf("%T\n", txt)
}
結果
15.5
15.5
15.5%
float64
Hello World!
"Hello World!"
string
整數格式化動詞
以下動詞可用於整數資料型別
動詞 | 描述 |
---|---|
%b | 基數 2 |
%d | 基數 10 |
%+d | 基數 10 並始終顯示符號 |
%o | 基數 8 |
%O | 基數 8,帶前導 0o |
%x | 基數 16,小寫 |
%X | 基數 16,大寫 |
%#x | 基數 16,帶前導 0x |
%4d | 用空格填充(寬度 4,右對齊) |
%-4d | 用空格填充(寬度 4,左對齊) |
%04d | 用零填充(寬度 4 |
示例
package main
import ("fmt")
func main() {
var i = 15
fmt.Printf("%b\n", i)
fmt.Printf("%d\n", i)
fmt.Printf("%+d\n", i)
fmt.Printf("%o\n", i)
fmt.Printf("%O\n", i)
fmt.Printf("%x\n", i)
fmt.Printf("%X\n", i)
fmt.Printf("%#x\n", i)
fmt.Printf("%4d\n", i)
fmt.Printf("%-4d\n", i)
fmt.Printf("%04d\n", i)
}
結果
1111
15
+15
17
0o17
f
F
0xf
15
15
0015
字串格式化動詞
以下動詞可用於字串資料型別
動詞 | 描述 |
---|---|
%s | 以純字串形式列印值 |
%q | 以雙引號字串形式列印值 |
%8s | 以純字串形式列印值(寬度 8,右對齊) |
%-8s | 以純字串形式列印值(寬度 8,左對齊) |
%x | 列印位元組值的十六進位制轉儲 |
% x | 列印帶空格的十六進位制轉儲 |
示例
package main
import ("fmt")
func main() {
var txt = "Hello"
fmt.Printf("%s\n", txt)
fmt.Printf("%q\n", txt)
fmt.Printf("%8s\n", txt)
fmt.Printf("%-8s\n", txt)
fmt.Printf("%x\n", txt)
fmt.Printf("% x\n", txt)
}
結果
Hello
"Hello"
Hello
Hello
48656c6c6f
48 65 6c 6c 6f
布林值格式化動詞
以下動詞可用於布林值資料型別
動詞 | 描述 |
---|---|
%t | 布林運算子的值,以 true 或 false 格式顯示(與使用 %v 相同) |
示例
package main
import ("fmt")
func main() {
var i = true
var j = false
fmt.Printf("%t\n", i)
fmt.Printf("%t\n", j)
}
結果
true
false
浮點數格式化動詞
以下動詞可用於浮點數資料型別
動詞 | 描述 |
---|---|
%e | 使用 'e' 作為指數的科學計數法 |
%f | 小數點,無指數 |
%.2f | 預設寬度,精度 2 |
%6.2f | 寬度 6,精度 2 |
%g | 根據需要使用指數,僅顯示必要數字 |
示例
package main
import ("fmt")
func main() {
var i = 3.141
fmt.Printf("%e\n", i)
fmt.Printf("%f\n", i)
fmt.Printf("%.2f\n", i)
fmt.Printf("%6.2f\n", i)
fmt.Printf("%g\n", i)
}
結果
3.141000e+00
3.141000
3.14
3.14
3.141