golang之格式化fmt.Printf


當使用fmt包打印一個數值時,我們可以用%d、%o或%x參數控制輸出的進制格式,就像下面的例子:

o := 0666
fmt.Printf("%d %[1]o %#[1]o\n", o) // "438 666 0666"
x := int64(0xdeadbeef)
fmt.Printf("%d %[1]x %#[1]x %#[1]X\n", x)
// Output:
// 3735928559 deadbeef 0xdeadbeef 0XDEADBEEF

注意fmt的兩個使用技巧。通常Printf格式化字符串包含多個%參數時將會包含對應相同數量的額外操作數,但是%之后的 [1] 副詞告訴Printf函數再次使用第一個操作數。第二,%后的 # 副詞告訴Printf在用%o、%x或%X輸出時生成0、0x或0X前綴。
字符使用 %c  參數打印通過一對單引號直接包含對應字符,或者是用 %q  參數打印帶單引號的字符:

ascii := 'a'
unicode := ''
newline := '\n'
fmt.Printf("%d %[1]c %[1]q\n", ascii) // "97 a 'a'"
fmt.Printf("%d %[1]c %[1]q\n", unicode) // "22269 國 '國'"
fmt.Printf("%d %[1]q\n", newline) // "10 '\n'"

 用Printf函數的%g參數打印浮點數,將采用更緊湊的表示形式打印,並提供足夠的精度,但是對應表格的數據,使用%e(帶指數)或%f的形式打印可能更合適。所有的這三個打印形式都可以指定打印的寬度和控制打印精度。

for x := 0; x < 8; x++ {
  fmt.Printf("x = %d e^x = %8.3f\n", x, math.Exp(float64(x)))
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM