Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

  1. トップページ
  2. Go辞典
  3. fmt.Println() / Print() / Printf()

fmt.Println() / Print() / Printf()

『fmt』パッケージはGoで最もよく使う標準パッケージの一つで、フォーマットされた出力や入出力を提供します。『fmt.Println()』『fmt.Print()』『fmt.Printf()』はいずれも標準出力(stdout)に書き出す関数です。

構文
import "fmt"

// 改行付きで出力します(引数の間にスペースが入ります)。
fmt.Println(値1, 値2, ...)

// スペースなしで出力します(文字列以外の隣接引数にはスペースが入ります)。
fmt.Print(値1, 値2, ...)

// フォーマット文字列を使って出力します。
fmt.Printf("書式文字列", 値1, 値2, ...)
関数一覧
関数概要
fmt.Println(a ...any)引数をスペース区切りで出力し、末尾に改行を追加します。
fmt.Print(a ...any)引数を出力します。文字列でない隣接引数の間にスペースを挿入します。改行はしません。
fmt.Printf(format string, a ...any)フォーマット文字列に従って引数を整形して出力します。改行は'\n'で指定します。
サンプルコード
package main

import "fmt"

type Point struct {
    X, Y int
}

func main() {
    name := "Go言語"
    version := 1.22
    year := 2024

    // Println:引数の間にスペース、末尾に改行が入ります。
    fmt.Println("Hello, World!")
    fmt.Println(name, "バージョン", version)
    fmt.Println("リリース年:", year)

    fmt.Println()

    // Print:改行なし。文字列でない引数の隣接部分にスペースが入ります。
    fmt.Print("A")
    fmt.Print("B")
    fmt.Print("C\n") // 手動で改行します。
    fmt.Print(1, 2, 3, "\n")   // 数値の間にスペースが入ります。
    fmt.Print("x", "y", "\n") // 文字列の間にはスペースが入りません。

    fmt.Println()

    // Printf:フォーマット指定で出力します。
    fmt.Printf("言語: %s\n", name)
    fmt.Printf("バージョン: %.2f\n", version)
    fmt.Printf("整数: %d, 8進数: %o, 16進数: %x\n", 255, 255, 255)
    fmt.Printf("真偽値: %t\n", true)
    fmt.Printf("ポインタ: %p\n", &year)

    // 構造体の出力
    p := Point{X: 10, Y: 20}
    fmt.Printf("値: %v\n", p)       // デフォルト形式
    fmt.Printf("フィールド名付き: %+v\n", p) // フィールド名付き
    fmt.Printf("Go構文: %#v\n", p)  // Go言語の構文形式
    fmt.Printf("型: %T\n", p)       // 型名
}
概要

『fmt.Println()』はデバッグや簡単な出力に、『fmt.Printf()』は数値のフォーマットや文字列の整形に使います。フォーマット動詞('%v'や'%d'など)の一覧は『フォーマット動詞』を参照してください。文字列としてフォーマットしたい場合は『fmt.Sprintf()』を使います。

fmt.Printf()でフォーマット動詞と引数の数が合わない場合、コンパイルエラーにはならず実行時に'%!(EXTRA ...)'や'%!(MISSING ...)'と出力されます。go vet コマンドでこの種のミスを検出できます。

文字列フォーマットは『fmt.Sprintf() / Fprintf()』、標準入力の読み取りは『fmt.Scan()』を参照してください。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。