入出力

Go言語のPrint関数の使い方について解説

Go言語での出力処理に着目した記事です。

標準ライブラリのfmtパッケージを使い、fmt.Printfmt.Printlnfmt.Printfなど、さまざまな出力方法の使い方を紹介します。

各関数の違いをシンプルな例で確認し、コードの見通しをよくする方法を説明します。

fmtパッケージの基本

出力関数の一覧

fmt.Print の特徴

fmt.Print は引数に渡した値を連結して出力する関数です。

自動改行が行われないため、複数の出力結果を一行で表示したい場合に便利です。

例えば、以下のコードは「こんにちは、世界!

」という文字列を1行で出力します。

package main
import "fmt"
func main() {
	// fmt.Print は改行を入れずにそのまま出力する
	fmt.Print("こんにちは、世界!")
}
こんにちは、世界!

fmt.Println の自動改行機能

fmt.Println は出力後に自動的に改行が挿入されるため、複数の値を個別の行に出力する際に便利です。

以下のサンプルコードでは、各出力ごとに改行が追加されます。

package main
import "fmt"
func main() {
	// fmt.Println は出力後に自動で改行が入る
	fmt.Println("こんにちは")
	fmt.Println("世界")
}
こんにちは
世界

fmt.Printf のフォーマット指定機能

fmt.Printf はフォーマット指定子を使用して、出力内容の整形が可能です。

例えば、数値や文字列の表示形式を指定することで、より見やすい出力結果を得ることができます。

下記のサンプルコードでは、フォーマット指定子 %d%s を用いて出力を整えています。

package main
import "fmt"
func main() {
	// %d は整数、%s は文字列を意味するフォーマット指定子
	fmt.Printf("数値: %d, 文字列: %s\n", 100, "サンプル")
}
数値: 100, 文字列: サンプル

fmt.Printの使い方解説

基本的な出力例

fmt.Print の基本的な使い方は、文字列や変数を直接連結して出力する方法です。

下記のコードは、変数の値を結合して1行で表示する例です。

package main
import "fmt"
func main() {
	// 変数の宣言と初期化
	message := "Go言語での出力例"
	// 複数の値を連結して1行で出力する
	fmt.Print("メッセージ: ", message)
}
メッセージ: Go言語での出力例

動作確認のポイント

fmt.Print を使用した際は、改行が自動で行われないため、出力結果が意図した通りに連続して並んでいるか確認する必要があります。

動作確認の際には、以下のポイントに注意してください。

  • 改行が必要な場合は、手動で "\n" を追加する。
  • 複数の値を出力する場合、出力結果の連結具合をチェックする。

以下のコードでは、手動で改行を追加して意図通りの出力を得る方法を示します。

package main
import "fmt"
func main() {
	// 改行を自分で指定して出力
	fmt.Print("1行目\n")
	fmt.Print("2行目")
}
1行目
2行目

fmt.Printlnの使い方解説

改行付き出力の挙動

fmt.Println は出力が終わるごとに改行が加わるため、各出力が自動的に新しい行に配置されます。

この特性により、複数行での出力が簡単に行えます。

例えば、下記のコードは各文字列が別々の行に表示されます。

package main
import "fmt"
func main() {
	// 各出力ごとに自動的に改行が入る
	fmt.Println("1行目のテキスト")
	fmt.Println("2行目のテキスト")
	fmt.Println("3行目のテキスト")
}
1行目のテキスト
2行目のテキスト
3行目のテキスト

使用例で検証

実際のシナリオでは、例えばログの出力やユーザーへのメッセージ表示で活用できます。

下記のコードは、ユーザー名とメッセージを改行付きで出力する例です。

package main
import "fmt"
func main() {
	userName := "Alice"
	message := "ログインしました"
	// ユーザー情報とメッセージを改行付きで出力
	fmt.Println("ユーザー名:", userName)
	fmt.Println("メッセージ:", message)
}
ユーザー名: Alice
メッセージ: ログインしました

fmt.Printfの使い方解説

フォーマット指定子の基本

数値の書式設定例

fmt.Printf では、数値の書式設定として %d%f、または桁数を調整する指定子を用いることができます。

以下のコードは、整数と小数を指定した形式で出力する例です。

package main
import "fmt"
func main() {
	age := 30
	height := 175.5
	// %d で整数、%f で小数を出力
	// %.2f で小数点以下2桁まで表示
	fmt.Printf("年齢: %d歳, 身長: %.2fcm\n", age, height)
}
年齢: 30歳, 身長: 175.50cm

文字列の書式設定例

文字列の書式設定では、%s を用いて文字列を出力します。

場合によっては、文字列の表示幅を指定することも可能です。

下記のコードは、文字列を右寄せで出力する例です。

package main
import "fmt"
func main() {
	name := "Bob"
	// %10s は、全体の幅10で右寄せして文字列を出力
	fmt.Printf("名前: %10s\n", name)
}
名前:        Bob

実践的な出力例

複数のフォーマット指定子を組み合わせることで、複雑な出力を簡単に整形することが可能です。

下記のコードは、ユーザーID、名前、スコアをまとめて出力する例です。

package main
import "fmt"
func main() {
	// サンプルデータの定義
	userID := 101
	userName := "Charlie"
	userScore := 95.75
	// 複数のデータを一度に整形して出力
	fmt.Printf("ユーザーID: %d, 名前: %s, スコア: %.1f\n", userID, userName, userScore)
}
ユーザーID: 101, 名前: Charlie, スコア: 95.8

まとめ

この記事では、Go言語におけるfmt.Print、fmt.Println、およびfmt.Printfの特徴や使用例を解説しました。

各関数の挙動やフォーマット指定子の利用方法が整理でき、出力の意図に合わせた適切な関数選択が理解できるようになりました。

ぜひ、実際にコードを書いて動作を確認し、学習内容を実践に活かしてみてください。

関連記事

Back to top button
目次へ