基本的 fmt

包 fmt 使用格式動詞實現格式化的 I / O :

%v    // the value in a default format
%T    // a Go-syntax representation of the type of the value
%s    // the uninterpreted bytes of the string or slice

格式化函式

fmt 中有 4 種主要功能型別,其中有幾種變體。

列印

fmt.Print("Hello World")        // prints: Hello World
fmt.Println("Hello World")      // prints: Hello World\n
fmt.Printf("Hello %s", "World") // prints: Hello World

短跑

formattedString := fmt.Sprintf("%v %s", 2, "words") // returns string "2 words"

Fprint

byteCount, err := fmt.Fprint(w, "Hello World") // writes to io.Writer w

Fprint 可以在 http 處理程式中使用:

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello %s!", "Browser")
}   // Writes: "Hello Browser!" onto http response

掃描

掃描掃描從標準輸入讀取的文字。

var s string
fmt.Scanln(&s) // pass pointer to buffer
// Scanln is similar to fmt.Scan(), but it stops scanning at new line.
fmt.Println(s) // whatever was inputted

Stringer 介面

任何具有 String() 方法的值都實現了 fmt 介面 Stringer

type Stringer interface {
        String() string
}