Go语言fmt包详解
生活随笔
收集整理的這篇文章主要介紹了
Go语言fmt包详解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
格式化輸出函數
fmt包含有格式化I/O函數,類似于C語言的printf和scanf。格式字符串的規則來源于C,但更簡單一些
1.print和println方法
print輸出給定的字符串,如果是數值或字符,則輸出對應的十進制表示
fmt.Print("a", "
") //輸出a
fmt.Print("a", "b", "
") //輸出ab
fmt.Print('a', "
") //輸出97
fmt.Print('a', 'b', "
") //輸出97 98 字符之間會輸出一個空格
fmt.Print(12, "
") //輸出12
fmt.Print(12, 13, "
") //輸出12 13 數值之間輸出一個空格
Println自動在結尾輸出
,兩個數值之間自動加空格,每項之間自動加空格
fmt.Println("---------------------------------")
fmt.Println("a") //輸出a
fmt.Println("a", "b") //輸出a b
fmt.Println('a') //輸出97
fmt.Println('a', 'b') //輸出97 98
fmt.Println(12) //輸出12
fmt.Println(12, 13) //輸出12 13
fmt.Println("
", 12, 13) //輸出 12 13 12之前有一個空格
2、以下為printf方法的格式說明:
printf 格式化輸出
定義變量示例
type Human struct {
Name string
}
var people = Human{Name:"春生"}
普通占位符
| 占位符 |
說明 |
舉例 |
輸出 |
%v |
相應值的默認格式 |
fmt.Printf("%v", name)
|
{春生} |
%+v |
打印結構體時,會添加字段名 |
fmt.Printf("%+v", people)
|
main.Human{Name:"zhangsan"}
|
%#v |
相應值的Go語法表示 |
fmt.Printf("%#v",people)
|
main.Human{Name:"春生"} |
%T |
相應值的類型的Go語法表示 |
fmt.Printf("%T",people)
|
main.Human |
%% |
字面上的百分號 |
fmt.Printf("%%")
|
% |
布爾占位符
占位符 |
說明 | 舉例 | 輸出 |
%t |
true 或 false。 |
fmt.Printf("%t",true)
|
true |
整數占位符
| 占位符 | 說明 | 舉例 | 輸出 |
%b |
二進制表示 |
fmt.Printf("%b", 5)
|
101 |
%c |
相應Unicode碼點所表示的字符 |
fmt.Printf("%c", 0x4E2D)
|
中 |
%d |
十進制表示 |
fmt.Printf("%d", 0x12)
|
18 |
%o |
八進制表示 |
fmt.Printf("%d", 10)
|
12 |
%q |
單引號圍繞的字符字面值,由Go語法安全地轉義 |
fmt.Printf("%q", 0x4E2D)
|
'中' |
| %x | 十六進制表示,字母形式為小寫 a-f |
fmt.Printf("%x", 13)
|
d |
|
%X |
十六進制表示,字母形式為大寫 A-F |
fmt.Printf("%x", 13)
|
D |
| %U | Unicode格式:U+1234,等同于 "U+%04X" |
fmt.Printf("%U", 0x4E2D)
|
U+4E2D |
浮點數和復數的組成部分(實部和虛部)
| 占位符 | 說明 | 舉例 |
|---|---|---|
| %e | (=%.6e) 6位小數點 科學計數法,例如 -1234.456e+78 |
fmt.Printf("%e", 10.2) |
| %E | 科學計數法,例如 -1234.456E+78 | fmt.Printf("%e", 10.2) |
| %f | (=%.6f) 6位小數點 有小數點而無指數,例如 123.456 |
fmt.Printf("%f", 10.2) |
| %g | 根據情況選擇 %e 或 %f 以產生更緊湊的(無末尾的0)輸出 | fmt.Printf("%g", 10.20) |
| %G | 根據情況選擇 %E 或 %f 以產生更緊湊的(無末尾的0)輸出 | fmt.Printf("%G", 10.20+2i) |
字符串與字節切片
| 占位符 | 說明 | 舉例 |
|---|---|---|
| %s | 輸出字符串表示(string類型或[]byte) | fmt.Printf("%s", []byte("oldboy")) |
| %10s | 輸出字符串最小寬度為10(右對齊) | fmt.Printf("%10s", "oldboy") |
| %-10s | 輸出字符串最小寬度為10(左對齊) | fmt.Printf("%-10s", "oldboy") |
| %.5s | 輸出字符串最大寬度為5 | fmt.Printf("%.5s", "oldboy") |
| %5.10s | 輸出字符串最小寬度為5,最大寬度為10 | fmt.Printf("%5.10s", "oldboy") |
| %-5.10s | 輸出字符串最小寬度為5,最大寬度為10(左對齊) | fmt.Printf("%-5.10s", "oldboy") |
| %5.3s | 輸出字符串寬度為5,如果原字符串寬度大于3,則截斷 | fmt.Printf("%5.3s", "oldboy") |
| %010s | 如果寬度小于10,就會在字符串前面補零 | fmt.Printf("%010s", "oldboy") |
| %q | 雙引號圍繞的字符串,由Go語法安全地轉義 | fmt.Printf("%q", "oldboy") |
| %x | 十六進制,小寫字母,每字節兩個字符 | fmt.Printf("%x", "oldboy") |
| %X | 十六進制,大寫字母,每字節兩個字符 | fmt.Printf("%X", "oldboy") |
指針
| 占位符 | 說明 | 舉例 |
|---|---|---|
| %p | 十六進制表示,前綴 0x | fmt.Printf("%p", &site) |
| %#p | 不帶前綴 0x | fmt.Printf("%#p", &site) |
總結
以上是生活随笔為你收集整理的Go语言fmt包详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: excel电子表格有哪些技巧 excel
- 下一篇: sa函数的积分(sint/t)