格式
Golang 基礎: 列印格式
一般
類型 |
說明 |
description |
%v |
預設格式 |
default format |
%+v |
預設格式加上欄位名稱 |
default format with field names |
%#v |
golang 語法格式 |
Go-syntax format |
%T |
golang 資料類型 |
Go-syntax type of value |
%% |
百分比符號 |
percent sign |
預設格式 %v
a := 26
fmt.Printf("a: %v\n", a)
// a: 26
a := `KJ`
fmt.Printf("a: %v\n", a)
// a: KJ
type Developer struct {
name string
age int
is_working bool
}
func main() {
fmt.Printf("Developer: %v\n", Developer{})
// Developer: { 0 false}
}
預設格式加上欄位名稱 %+v
type Developer struct {
name string
age int
is_working bool
}
func main() {
fmt.Printf("Developer: %+v\n", Developer{})
// Developer: {name: age:0 is_working:false}
}
golang 語法格式 %#v
a := 26
fmt.Printf("a: %#v\n", a)
// a: 26
a := `KJ`
fmt.Printf("a: %#v\n", a)
// a: "KJ"
var a = []float64{1, 2, 4, 8, 16, 32, 64, 128}
fmt.Printf("a: %#v\n", a)
// a: []float64{1, 2, 4, 8, 16, 32, 64, 128}
type Developer struct {
name string
age int
is_working bool
}
func main() {
fmt.Printf("Developer: %#v\n", Developer{})
// Developer: main.Developer{name:"", age:0, is_working:false}
}
golang 資料類型 %T
var a = []float64{1, 2, 4, 8, 16, 32, 64, 128}
fmt.Printf("a: %T\n", a)
// a: []float64
a := 26
fmt.Printf("a: %T\n", a)
// a: int
a := `KJ`
fmt.Printf("a: %T\n", a)
// a: string
百分比符號 %%
fmt.Printf("percent sign: %%\n")
// percent sign: %
布林值
類型 |
說明 |
description |
%t |
布林值 |
true or false |
布林值 %t
a := true
fmt.Printf("a: %t\n", a)
// a: true
a := 1
fmt.Printf("a: %t\n", a)
// a: %!t(int=1)
a := `KJ`
fmt.Printf("a: %t\n", a)
// a: %!t(string=KJ)
整數
類型 |
說明 |
description |
%d |
十進位數字 |
base 10 |
%b |
二進位數字 |
base 2 |
%o |
八進位數字 |
base 8 |
%O |
八進位數字 |
base 8 with 0o prefix |
%x |
十六進位數字(小寫) |
base 16 with lower-case |
%X |
十六進位數字(大寫) |
base 16 with upper-case |
%c |
字元 |
ASCII 字元 |
%s |
字串 |
一般字串 |
%U |
Unicode |
- |
十進位數字 %d
a := 10
fmt.Printf("a: %d\n", a)
// a: 10
二進位數字 %b
a := 10
fmt.Printf("a: %b\n", a)
// a: 1010
八進位數字 %o %O
a := 10
fmt.Printf("a: %o\n", a)
// a: 12
a := 10
fmt.Printf("a: %O\n", a)
// a: 0o12
十六進位數字 %x %X
a := 26
fmt.Printf("a: %x\n", a)
// a: 1a
a := 26
fmt.Printf("a: %X\n", a)
// a: 1A
字串 %s
a := `KJ`
fmt.Printf("a: %s\n", a)
// a: KJ
a := 75
fmt.Printf("a: %s\n", a)
// a: %!s(int=75)
ASCII 字元 %c
a := 75
fmt.Printf("a: %c\n", a)
// a: K
Unicode 字元 %U
a := 26
fmt.Printf("a: %U\n", a)
// a: U+001A
參考資料