fmt

https://golang.org/pkg/fmt/

Print: 輸出到控制台,不接受任何格式化操作 
Println: 輸出到控制台並換行 
Printf : 只可以列印出格式化的字符串。只可以直接輸出字符串類型的變量(不可以輸出別的類型) 
Sprintf:格式化並返回一個字符串而不帶任何輸出 
Fprintf:格式化並輸出到 io.Writers 而不是 os.Stdout

printf

package main

import (
    "fmt"
)

type person struct {
    height int
    weight int
}

func main() {
    Jason := person{178, 72}

    fmt.Print(Jason)
    fmt.Println(Jason)        // 不換行
    fmt.Printf("%v\n", Jason) // 可選擇使用什麼格式來印
    fmt.Printf("%+v\n", Jason)
}

結果如下:

{178 72}{178 72}
{178 72}
{height:178 weight:72}

sprintf

s := fmt.Sprintf("%s ","string") //不會輸出,只會轉換格式為string
fmt.Println(s)

Fprintf

輸出到其他 io,例如http response

fmt.Fprintf(w, "%d", 123)

附錄:

        %v 輸出結構體 {10 30}
        %+v 輸出結構體顯示字段名 {one:10 tow:30}
        %#v 輸出結構體源代碼片段 main.Point{one:10, tow:30}
        %T 輸出值的類型     main.Point
        %t 輸出格式化boolean true
        %d`輸出標准的十進制格式化 100
        %b`輸出標准的二進制格式化 99 對應 1100011
        %c`輸出定整數的對應字符  99 對應 c
        %x`輸出十六進制編碼  99 對應 63
        %f`浮點數
        %e`輸出科學  123400000.0 對應 1.234000e+08
        %E`輸出科學  123400000.0 對應 1.234000e+08
        %s 進行基本的字符串輸出   "\"string\""  對應 "string"
        %q  a single-quoted character literal safely escaped with Go syntax.
        %p 輸出一個指針的值   &jgt 對應 0xc00004a090
        % 後面使用數字來控制輸出寬度 默認結果使用右對齊並且通過空格來填充空白部分
        %2.2f  指定浮點型的輸出寬度 1.2 對應  1.20
        %*2.2f  指定浮點型的輸出寬度對齊,使用 `-` 標志 1.2 對應  *1.20

https://golang.org/pkg/fmt/

Last updated