格式

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

參考資料