Dragon Arrow written by Tatsuya Nakaji, all rights reserved animated-dragon-image-0164

go言語 fmt.Print関数 fmt.Println関数 fmt.Printf関数の違い

updated on 2020-10-31

fmtライブラリの標準出力


fmt.Print / fmt.Println

  • fmt.Print関数/fmt.Println関数

    • 標準出力(後述)に出力を行う関数

    • fmt.Printlnの方は末尾に改行をつけて表示する

    • 複数の値を渡せる



package main

import "fmt"


func main() {
    fmt.Print("Hello, ")             // 改行されない
    fmt.Println("世界")               // 改行される
    fmt.Println("A", 100, true, 1.5) // スペース区切りで表示される
}

(出力)

Hello, 世界 

A 100 true 1.5



fmt.Printf関数

  • fmt.Printf関数

    • 書式(フォーマット)を指定して標準出力に出力を行う関数

    • 改行はされないので\n(改行文字)で改行する

    • %dや%sで値の書式を指定して埋め込む


package main


import "fmt"


func main() {
    fmt.Printf("Hello, 世界\n")      // \nで改行する
    fmt.Printf("%d-%s", 100, "偶数") // %dは整数、%sは文字列
}

(出力)

Hello, 世界 100-偶数


%にて書式を指定できるフォーマットの種類は以下の通り

種別フォーマット説明
汎用%vデフォルトフォーマットを適用した値
汎用%+v構造体を出力する際、+フラグを加えるとフィールド名が表示される
汎用%#vこの値をGo言語の構文で表現する
汎用%Tこの値の型をGo言語の構文で表現する
論理値%t単語、trueまたはfalse
整数値%b基数2
整数値%c対応するUnicodeコードポイントによって表される文字
整数値%d基数10
整数値%o基数8
整数値%x基数16、10以上の数には小文字(a-f)を使用
整数値%X基数16、10以上の数には大文字(A-F)を使用
整数値%Uユニコードフォーマット: U+1234; “U+%x”と同じ。デフォルトは、4桁
浮動小数、複素数%e科学的記数法、例: -1234.456e+78
浮動小数、複素数%E科学的記数法、例: -1234.456E+78
浮動小数、複素数%f指数なしの小数、例: 123.456
浮動小数、複素数%g%e、%fのどちらか出力の短い方
浮動小数、複素数%G%E、%fのどちらか出力の短い方
文字列、バイトスライス%s文字列またはスライスそのまま
文字列、バイトスライス%qGo言語の構文に従いダブルクォート形式でエスケープ
文字列、バイトスライス%x各バイトを2文字の16進数文字列として
ポインタ%p16進数文字列、先頭に0x