🖨️

fmtのprintの種類、多くね?って方向けの覚え方

2023/05/09に公開

fmtのprintの種類、多くね?

Goの初心者だったとき、fmtパッケージの出力系関数の種類が多くない?って思ってました。

fmt.Println("hello world")
s := fmt.SPrintf("%v", "hello world")
fmt.Fprintf(os.Stdout, "%v", "hello world")

が、以下の全体像さえ抑えれば、覚える量を減らせることに気付きました。

Print, Sprint, Fprintの違い

どこに出力するか。

  • Print: 標準出力
  • Sprint: 文字列を返す。Stringの略。
  • Fprint: io.Writerに書き込む。Fileの略。

Print, Println, Printfの違い

どのように出力するか。

  • Print: 空白を挟んで出力
  • Println: 改行を挟んで出力。Lineの略。
  • Printf: フォーマットを指定して出力。Formatの略。

つまり表で書くとこうなる

標準出力 文字列を返す io.Writerに書き込む
空白を挟んで出力 Print Sprint Fprint
改行を挟んで出力 Println Sprintln Fprintln
フォーマットを指定して出力 Printf Sprintf Fprintf

fmtのドキュメント

fmt package - fmt - Go Packages

Discussion