サーチ…
ストリンガー
fmt.Stringer
インターフェイスには、 String() string
を満たす単一のメソッドが必要です。文字列メソッドは、その値の "ネイティブ"文字列形式を定義し、値がfmt
パッケージの書式設定ルーチンまたは印刷ルーチンのいずれかに提供されている場合のデフォルト表現です。
package main
import (
"fmt"
)
type User struct {
Name string
Email string
}
// String satisfies the fmt.Stringer interface for the User type
func (u User) String() string {
return fmt.Sprintf("%s <%s>", u.Name, u.Email)
}
func main() {
u := User{
Name: "John Doe",
Email: "[email protected]",
}
fmt.Println(u)
// output: John Doe <[email protected]>
}
基本的なfmt
パッケージfmtは、フォーマット動詞を使用してフォーマットされた入出力を実装します:
%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
http
ハンドラ内でFprint
ことができます:
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
ストリンガーインターフェース
String()
メソッドを持つ任意の値は、 fmt
inteface Stringer
実装します
type Stringer interface {
String() string
}
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow