サーチ…


ストリンガー

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]>
}

Playground

基本的な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

書式関数

fmt4つの主な機能タイプがあり、その中にはいくつかのバリエーションがあります。

印刷

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