カテゴリ: Go言語 更新日: 2026/01/30

Go言語の文字列フォーマット!fmt.Sprintfで簡単に出力を整形する方法

Go言語の文字列フォーマット!fmt.Sprintfを使った出力例
Go言語の文字列フォーマット!fmt.Sprintfを使った出力例

先生と生徒の会話形式で理解しよう

生徒

「Go言語で文字列と数値を組み合わせて出力したいときはどうすればいいですか?」

先生

「その場合はfmt.Sprintfを使うと便利です。文字列の中に数値や他の変数を埋め込むことができます。」

生徒

「具体的にはどのように書くのですか?」

先生

「文字列の中に%d%sなどの書式指定子を使って変数を埋め込みます。それでは基本的な使い方を見てみましょう!」

1. fmt.Sprintfとは?

1. fmt.Sprintfとは?
1. fmt.Sprintfとは?

Go言語のfmt.Sprintfは、文字列をフォーマットして新しい文字列を作るための関数です。普段のprint関数と違い、その場で表示するのではなく「文字列として結果を返す」のが特徴です。Sprintfの「S」はStringの頭文字で、生成した文章をそのまま変数に入れて後で使うことができます。

たとえば、画面に出す前にメッセージを組み立てたいときや、ログとして保存したいときに役立ちます。「名前」や「数値」を文章の中に自然に埋め込めるので、初心者の人でも読みやすいメッセージを簡単に作れます。


package main

import (
    "fmt"
)

func main() {
    user := "太郎"
    msg := fmt.Sprintf("%sさん、ようこそ!", user)
    fmt.Println(msg)
}

太郎さん、ようこそ!

このように、作成した文字列は変数msgに入っているので、後から記録したり別の処理に渡したりできます。単に画面に表示するだけでなく、自由な場面で活用できるのがfmt.Sprintfの便利なポイントです。

2. 基本的な使い方

2. 基本的な使い方
2. 基本的な使い方

まずは、変数を文章の中に埋め込む簡単な例を見てみましょう。たとえば、名前と年齢をひとつの文章として表示したいとき、文字列をそのまま結合しようとすると「+」を使ったり、スペースを自分で入れたりと少し面倒です。そこでfmt.Sprintfを使うと、自然な文章の形で文字列を作ることができます。


package main

import (
    "fmt"
)

func main() {
    name := "太郎"
    age := 25
    result := fmt.Sprintf("私の名前は%sで、年齢は%d歳です。", name, age)
    fmt.Println(result)
}

私の名前は太郎で、年齢は25歳です。

ここで使っている%sは「文字列を入れる場所」、%dは「整数を入れる場所」を表しています。このように書式指定子と変数を並べてあげるだけで、きれいな文章が作れます。文字列をつなげるより読みやすく、プログラムを見た人にも意図が伝わりやすくなるので、初心者の方にもおすすめです。

生徒

「確かに “+” でつなげるよりずっと読みやすいですね。でも、どうしてわざわざ書式指定子を使うんですか?」

先生

「いい質問ですね。例えば、年齢のあとに “歳” と書き忘れたり、順番を間違えたりすることがなくなるんです。文章の形を先に作っておいて、あとから変数を埋め込むだけなので、コードもスッキリします。」

生徒

「なるほど。文章として先に書けるから、どんな内容になるか想像しやすいんですね!」

3. 小数点や浮動小数点数のフォーマット

3. 小数点や浮動小数点数のフォーマット
3. 小数点や浮動小数点数のフォーマット

小数点を含む数値を文字列として整形したい場合は、%fを使います。小数点以下の桁数も指定可能です。


package main

import (
    "fmt"
)

func main() {
    price := 1234.567
    result := fmt.Sprintf("商品の価格は%.2f円です。", price) // 小数点以下2桁
    fmt.Println(result)
}

商品の価格は1234.57円です。

このように、小数点以下を指定したフォーマットで表示することができます。

Go言語を基礎からスッキリ学びたい人や、 文法だけでなく「実用的な使い方」まで押さえたい人には、 定番の入門書がこちらです。

基礎からわかるGo言語をAmazonで見る

※ Amazon広告リンク

4. 複数の変数を組み合わせる

4. 複数の変数を組み合わせる
4. 複数の変数を組み合わせる

複数の数値や文字列を同時にフォーマットしたい場合もfmt.Sprintfは便利です。順番に書式指定子を並べるだけで簡単に文字列化できます。


package main

import (
    "fmt"
)

func main() {
    name := "花子"
    age := 30
    height := 165.5
    result := fmt.Sprintf("%sさんは%d歳で身長は%.1fcmです。", name, age, height)
    fmt.Println(result)
}

花子さんは30歳で身長は165.5cmです。

文字列、整数、浮動小数点数を組み合わせる場合も、書式指定子と変数の順番を揃えることで簡単に整形できます。

5. fmt.Sprintfを使うときの注意点

5. fmt.Sprintfを使うときの注意点
5. fmt.Sprintfを使うときの注意点

書式指定子と変数の型が一致していないとエラーになります。例えば、%dは整数用なので文字列を渡すと実行時にエラーになります。必ず対応する型の書式指定子を使うようにしましょう。

また、Sprintfは文字列を返すだけで画面には表示しません。表示したい場合はfmt.Printlnfmt.Printと組み合わせて使用します。

この関数を使いこなすと、ユーザー向けのメッセージやログ出力を見やすく整形することができます。

6. 文字列フォーマットの活用例

6. 文字列フォーマットの活用例
6. 文字列フォーマットの活用例

たとえば、日付や通貨、割合などを整形して表示したい場合にfmt.Sprintfは非常に便利です。固定幅で揃えたいときや、小数点以下を調整したいときに活用できます。これにより、見やすく読みやすい出力が簡単に作れます。

まとめ

まとめ
まとめ

Go言語でプログラムを書いていると、人間が読みやすいメッセージを出したい場面がたくさんあります。数字だけ並べても伝わりにくかったり、ログに残したい文章が長くて書きにくかったり、途中で修正したくなって書き直しが大変だったりします。そんなときに力を発揮してくれるのがfmt.Sprintfです。文字列を繋げるのではなく、文章の形を先に作り、そこへ値を埋め込む書き方は、読みやすさと管理しやすさの両方を助けてくれます。

書式指定子を使うことで、名前や年齢のようなシンプルなデータはもちろん、金額や身長、商品価格、割合、日付といったさまざまな種類の値を綺麗に整形できます。単位を付けたり桁数を揃えたり、ゼロで埋めたりすることで、画面に表示する文章がぐっと洗練され、ユーザーにとって読みやすい表示へと変わります。小さな工夫ですが、丁寧に整った出力はアプリケーション全体の印象にも影響します。

また、fmt.Sprintfは文字列として作成した結果をそのまま変数に入れられるため、後からファイルに書き込んだり、ログに残したりする処理へ渡せる点も便利です。見た目を整えるだけでなく、プログラムの構造そのものがすっきりします。画面への出力とは別の場所に文字列を使い回すことができるので、再利用性の高いコードを目指すときにも役立ちます。

まとめとしてのサンプルプログラム

最後に、さまざまな書式指定子を組み合わせて、見やすい文章を作る例をもうひとつ見ておきましょう。「日付」「価格」「割引率」「商品名」をひとつの文章として整形し、後からログへ保存するイメージのサンプルです。


package main

import (
    "fmt"
)

func main() {
    product := "りんご"
    price := 180.0
    discount := 0.15
    year := 2025
    month := 7
    day := 3

    msg := fmt.Sprintf("%sの価格は%.2f円、割引率は%.1f%%です。販売日は%04d-%02d-%02dです。",
        product, price, discount*100, year, month, day)

    fmt.Println(msg)
}

りんごの価格は180.00円、割引率は15.0%です。販売日は2025-07-03です。

ひとつひとつの値を並べて出すだけでも動きますが、整えた形で表示するだけで、読み手の印象は大きく変わります。特に仕事で使うログや、利用者へ見せる画面は、数値をきちんと整形するかどうかで「丁寧に作られているか」が伝わります。こうした細かい作業は後回しにされることもありますが、一度書式を覚えると色々な画面や処理に応用できるため、覚えて損はありません。

今回学んだように、%sは文字列、%dは整数、%fは小数、そして小数点以下の桁数を指定したい場合は%.2f%.1fのように書けます。日付には%04d%02dなどのゼロ埋めを使えば、桁が揃って見た目も綺麗になります。この考え方を意識するだけで、まるで整った帳票やレポートのような出力を作ることができます。

書式指定子と変数の型が一致しているかどうか、出力したい桁数は正しいか、順番はあっているか。この三つを意識するだけで、失敗しないフォーマット操作ができます。エラーが出たときは、どの書式指定子を使ったのかを一度見直してみましょう。最初は少し難しく感じる部分ですが、慣れてくると無意識で使えるようになります。

そして何より、fmt.Sprintfは「使っただけ結果が目に見える」機能なので、試しながら覚えるのに向いています。変数の値を変えたり、桁数を変えたり、文章の形を変えたりと、いろいろ実験してみてください。自分なりに読みやすい形を作っていくことで、理解が自然と深まります。

先生と生徒の振り返り会話

生徒

「文字列をつなげるより、fmt.Sprintfで整形したほうがきれいになる理由が分かりました。小数の桁も揃えられるし、日付もゼロ埋めで綺麗に表示できますね。」

先生

「そのとおりです。読みやすい出力は、それだけでプログラムの質を高めます。%s%d%fの基本さえおさえれば、あとは応用するだけです。」

生徒

「ログや表示にも使えそうです。これからの課題でも試してみます!」

先生

「自分で触ってみるのが一番身につきます。ぜひ色々なパターンを作ってみてください。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Go言語のfmt.Sprintfはどんな場面で使うのですか?

Go言語のfmt.Sprintfは、文字列を整形してわかりやすく加工したいときに使われます。たとえば、名前と年齢を文章として表示したいとき、数値と文字列を混ぜたいとき、ログにわかりやすいメッセージを出力したいときなど、さまざまな場面で活躍します。画面に出力する前に、整った文章を作りたい人にとって便利な関数です。
関連記事:
カテゴリの一覧へ
新着記事
New1
Go言語
Go言語の短絡評価(ショートサーキット)を使った条件式の工夫をやさしく解説!初心者でも理解できる基本知識
New2
Go言語
Go言語の構造体の初期化パターンとコンストラクタ的関数の書き方を徹底解説!初心者でもわかる基本と実用例
New3
Kotlin
Kotlinの例外処理とキャンセルの連携を完全ガイド!初心者でもわかるCoroutineExceptionHandlerの使い方
New4
Go言語
Go言語のクロージャとは?関数内関数の活用例と仕組み
人気記事
No.1
Java&Spring記事人気No1
Kotlin
KotlinのChannelでデータをやり取りする方法を完全ガイド!初心者にもわかる非同期通信の基本
No.2
Java&Spring記事人気No2
Go言語
Go言語でのDB接続情報を環境変数で管理する方法|初心者でも安全に設定
No.3
Java&Spring記事人気No3
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.4
Java&Spring記事人気No4
Kotlin
Kotlinのビルド設定エラーと解決法まとめ!初心者向けGradleトラブル対処ガイド
No.5
Java&Spring記事人気No5
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.6
Java&Spring記事人気No6
Kotlin
Kotlinでテキスト表示・編集!初心者でもわかるTextViewとEditTextの使い方
No.7
Java&Spring記事人気No7
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.8
Java&Spring記事人気No8
Kotlin
Kotlin DSLとGroovy DSLの違いをやさしく解説!初心者でもわかるGradleスクリプトの使い分け

💻 作業効率アップに

ノートPCを縦置きしてデスクを広く。
省スペースで片づく定番スタンド

UGREEN 縦型スタンドをAmazonで見る

※ Amazon広告リンク