Go 語言中的格式化輸出

wonbin發表於2019-12-22

fmt.Printf 中格式化說明符 彙總

%v

%v 代表使用型別的預設輸出格式的識別符號, 意味著可以使用 %v 列印任何型別,go 語言中的萬能格式符所以可以使用 %v 來表示複數

速查表

格式 說明
%d 格式化整數
%0d 用於規定輸出定長的整數 其中開頭的數字 0 是必須的
%g 格式化浮點型
%n.mg 用於表示數字 n 並精確到小數點後 m 位,除了使用 g 之外,還可以使用 e 或者 f
%f 格式化浮點數
%X, %x 格式化 16 進製表示的數字
%b 位的格式化識別符號
%e 科學計數表示法
%t 格式化布林型
%c 格式化字元
%s 格式化字串
%U, %u Unicode,格式為 U+hhhh 的字串
%p 格式化指標
%v 使用型別的預設輸出格式的識別符號

除錯相關格式化說明符

格式 說明
%T 列印某個型別的完整說明
%#v 列印包括欄位和限定型別名稱在內的例項的完整資訊
%+v 列印包括欄位在內的例項的完整資訊

程式

package main

import "fmt"

func main() {
    //int
    var v1 int = 100
    fmt.Printf("%d \n" , v1)   //  輸出 100
    fmt.Printf("%v \n" , v1)   //  輸出 100
    fmt.Printf("%05d \n" , v1) // 輸出 00100
    //bool
    var v2 bool = false
    fmt.Printf("%t \n", v2)  //輸出 fasle
    fmt.Printf("%s \n", v2) // 輸出 %!s(bool=false)

    // char
    var ch int  =  '\u0041'
    var ch2 int  =  '\u03B2'
    var ch3 int  =  '\u00101234'
    fmt.Printf("%d - %d - %d.", ch, ch2, ch3)  // integer,輸出 65 - 946 - 1053236
    fmt.Printf("%c - %c - %c.", ch, ch2, ch3)  // character,輸出 A - β - r
    fmt.Printf("%X - %X - %X.", ch, ch2, ch3)  // UTF-8 bytes,輸出 41 - 3B2 - 101234
    fmt.Printf("%U - %U - %U", ch, ch2, ch3)  // UTF-8 code point,輸出 U+0041 - U+03B2 - U+101234

     g := func(i int) { fmt.Printf("%d ", i) }
    fmt.Printf(" g is of type %T and has value %v\n", g, g)
    // g is of type func(int) and has value 0x488e90   %T 列印是變數型別(函式), %v  列印的是(函式)地址
}

注意: 單個字元可以是 int8 (byte 別名) , int16 , 或者int, 因為使用空間最大的單個字元編碼 Unicode 4個位元組就夠了 , 所以4位元組 int 可以包含所有的編碼格式了, ASCII 碼 int8 就夠了

累了 ,先寫這麼多吧,

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章