列印格式化中我們常常 需要用到的格式化的標記,每個標記實際來源於我們的單詞,本文介紹Go語言中的列印格式化。
通用
- %v:值的預設格式,對應英文為:value
- %T:值的型別,對應英文為:Type
布林值
%t:單詞 true或者 false,對應英文:true
整型
- %b:表示為二進位制,對應英文:binary
- %c:該值對應的inicode碼值,對應英文:char
- %d:表示為十進位制,對應英文:digital
- %8d:表示該整型長度為8,不足8位,則在數值前補空格,超過8,則以實際為準
- %08d:數字長度為8,不足8位,則在數值前補0,超過8,則以實際為準
- %o:表示為八進位制,對應英文:octal
- %q:該值對應的單引號 括起來的的Go語法字元字面值,必要時 會採用安全的轉義表示
- %x:表示為 十六進位制,使用 a-f,對應英文:hex
- %X:表示為 十六進位制,使用 A-F,對應英文:hex
- %U 表示為 unicode格式:U+1234,等價於“U+%04X”
浮點與複數
- %f (=%.6f) 有6位小數部分,如果想保留兩位小數,則 %.2f 即可(使用的是四捨五入)
- %e (=%.6e) 有6位小數部分的科學計數法,如果想保留兩位小數的科學計數,則 %.2e 即可
字串和byte[]
- %s 直接輸出字串 或者 byte[]
- %q 該值的對應的雙引號括起來的Go語法字串字面值,必要時採用安全的轉義表示
說了這麼多文字,不如來點實際的,上程式碼:
package main
import "fmt"
type Student struct {
x , y int
}
func main() {
// 通用
a := 12
fmt.Printf("%T , a = %v \n", a, a)
// 相當於例項化
p := Student{1,2}
fmt.Printf("%T , a = %v \n", p, p)
var s rune = '一'
fmt.Printf("%T , a = %v \n", s, s)
// 布林
b := true
fmt.Printf("%T , b = %t \n", b, b)
// 整數
c := 123
// %b 表示為 二進位制
fmt.Printf("%T , c = %b \n", c, c)
// %d 表示為 十進位制
fmt.Printf("%T , c = %d \n", c, c)
// %8d 表示該整型長度為8,不足8則在數值前補空格,如果超出8,以實際為準
fmt.Printf("%T , c = %8d \n", c, c)
// %08d 數字長度為8,不足8在前面補零,超出8,以實際為準
fmt.Printf("%T , c = %08d \n", c, c)
// %o 表示為 八進位制
fmt.Printf("%T , c = %o \n", c, c)
// %x 表示為 十六進位制,使用 a-f
fmt.Printf("%T , c = %x \n", c, c)
// %x 表示為 十六進位制,使用 A-F
fmt.Printf("%T , c = %X \n", c, c)
// %U 表示為 unicode格式:U+1234,等價於“U+%04X”
fmt.Printf("%T , c = %U \n", c, c)
cc := '一'
fmt.Printf("%T , cc = %U \n", cc, cc)
d := 97
// %c 對應的是 unicode碼值
fmt.Printf("%T , d = %c \n", d, d)
// %q 該值對應的單引號 括起來的的Go語法字元字面值,必要時 會採用安全的轉義表示
fmt.Printf("%T , d = %q \n", d, d)
// 浮點數
e := 123.23456
// %f (=%.6f) 有6位小數部分,如果想保留兩位小數,則 %.2f 即可(使用的是四捨五入)
fmt.Printf("%T , e = %f \n", e, e)
fmt.Printf("%T , e = %.2f \n", e, e)
// %e (=%.6e) 有6位小數部分的科學計數法,如果想保留兩位小數的科學計數,則 %.2e 即可
fmt.Printf("%T , e = %e \n", e, e)
fmt.Printf("%T , e = %.2e \n", e, e)
// %E 科學計數法
fmt.Printf("%T , %E \n", e, e)
// 字串和byte[]
f := "測試"
// %s 直接輸出字串 或者 byte[]
fmt.Printf("%T , f = %s \n", f, f)
// %q 該值的對應的雙引號括起來的Go語法字串字面值,必要時採用安全的轉義表示
fmt.Printf("%T , f = %q \n", f, f)
arr := [3]byte{97, 98, 99}
fmt.Printf("%T , arr = %s \n", arr, arr)
arr2 := [3]byte{'a', 'b', 'c'}
fmt.Printf("%T , arr2 = %s \n", arr2, arr2)
fmt.Printf("%T , arr2 = %x \n", arr2, arr2)
fmt.Printf("%T , arr2 = %X \n", arr2, arr2)
// 變數賦值
g := fmt.Sprintf(f)
fmt.Println("g==" + g)
}
複製程式碼
執行結果如下:
int , a = 12
main.Student , a = {1 2}
int32 , a = 19968
bool , b = true
int , c = 1111011
int , c = 123
int , c = 123
int , c = 00000123
int , c = 173
int , c = 7b
int , c = 7B
int , c = U+007B
int32 , cc = U+4E00
int , d = a
int , d = 'a'
float64 , e = 123.234560
float64 , e = 123.23
float64 , e = 1.232346e+02
float64 , e = 1.23e+02
float64 , 1.232346E+02
string , f = 測試
string , f = "測試"
[3]uint8 , arr = abc
[3]uint8 , arr2 = abc
[3]uint8 , arr2 = 616263
[3]uint8 , arr2 = 616263
g==測試
複製程式碼
歡迎關注我的公眾號~ 搜尋公眾號: 翻身碼農把歌唱 或者 掃描下方二維碼: