1. きのこ図鑑を渡したとき
  2. 別の商品を渡したとき
  3. 価格が0のとき
コース一覧
Go入門
fmtで出力する

Go入門

変数とゼロ値、Go唯一のループであるfor、複数戻り値とエラー処理、スライスとマップ、構造体とメソッド、ゴルーチンによる並行処理、net/httpによるAPI開発まで、Goの基礎を、毎レッスン実際にコードを書き、フリマアプリのAPIをGoで作りながら学びます。

1
Hello, Go
01. Goとは15分
02. 実行してみる15分
03. packageとmain15分
04. fmtで出力する15分
05. go buildと1バイナリ15分
06. つくる: 起動バナー20分
07. 第1章クイズ10分
2
変数と型
01. varで宣言する15分
02. := の短縮宣言15分
03. ゼロ値(Goならでは)15分
04. 基本の型15分
05. 暗黙変換なし15分
06. 定数とiota15分
07. つくる: 商品データ表示20分
08. 第2章クイズ10分
3
制御構文(forしかない世界)
01. Goのif15分
02. forしかない世界15分
03. forの七変化15分
04. Goのswitch15分
05. 定番: FizzBuzz15分
06. ループで集計15分
07. つくる: 商品集計20分
08. 第3章クイズ10分
4
関数とエラー処理
01. funcで関数を作る15分
02. 複数戻り値(Goならでは)15分
03. if err != nil(Goの心臓)15分
04. エラーを作る15分
05. deferで後始末15分
06. つくる: 検証つき関数群20分
07. 第4章クイズ10分
5
スライスとマップ
01. 配列15分
02. スライス15分
03. appendで育てる15分
04. rangeで走査する15分
05. マップ15分
06. カンマokイディオム15分
07. つくる: 検索と集計20分
08. 第5章クイズ10分
6
構造体とメソッド
01. 構造体15分
02. 初期化とフィールド15分
03. メソッド15分
04. ポインタレシーバ20分
05. New関数の慣習15分
06. 構造体のスライス15分
07. つくる: Itemで再設計20分
08. 第6章クイズ10分
7
ゴルーチンと並行処理のさわり
01. ゴルーチン15分
02. チャネル20分
03. 待ち合わせ20分
04. 並行の落とし穴20分
05. つくる: 並行集計20分
06. 第7章クイズ10分
8
Web API(net/http)
01. サーバーを立てる20分
02. ハンドラ関数20分
03. JSONを返す20分
04. ルーティング20分
05. 一覧API20分
06. 詳細APIと40420分
07. 出品API20分
08. つくる: API主要部完成25分
09. 第8章クイズ10分
9
総合制作
01. 仕様互換を仕上げる25分
02. Node版と差し替える25分
03. 1バイナリでデプロイ25分
04. 自由拡張25分
05. 完成と次のステップ20分

fmtで出力する

3つを使い分ける

fmt にはよく使う関数が3つあります。名前が似ていますが、役割ははっきり違います。

プレーンテキスト

Println 画面に出す。最後に改行が付く Printf 画面に出す。形を指定できる。改行は付かない Sprintf 画面に出さず、文字列として返す

最後の Sprintf だけ頭に S が付いています。この S は String の S で、「画面ではなく文字列に出す」という意味です。

Println はそのまま並べる

Go

fmt.Println("商品名", "きのこ図鑑")

プレーンテキスト

商品名 きのこ図鑑

渡したものを半角スペースで区切って並べ、最後に改行します。手軽ですが、間隔や桁を細かく決められません。

Printf は形を先に決める

Go

fmt.Printf("%s は %d 円です\n", "きのこ図鑑", 1200)

プレーンテキスト

きのこ図鑑 は 1200 円です

最初の文字列が型紙です。%s や %d の場所が、後ろに渡した値で埋まります。

プレーンテキスト

%s 文字列 %d 整数 %v なんでも。迷ったらこれ %.1f 小数第1位までの数

Printf は改行を付けないので、必要なら自分で \n を書きます。

Sprintf は返す

形は Printf と同じで、結果を画面ではなく戻り値にします。

Go

line := fmt.Sprintf("%s は %d 円です", "きのこ図鑑", 1200)

組み立てた文字を、あとで別の処理に渡したいときに使います。このコースの演習は関数の戻り値で答え合わせをするので、使うのはほぼ Sprintf です。

数の埋め込みに注意

%d に文字列を渡すと、エラーではなく変な出力になります。

Go

fmt.Sprintf("%d 円", "1200") // %!d(string=1200) 円

%!d は「%d に整数でないものが来ました」という Go からの合図です。見かけたら型紙と渡した値を見比べてください。

要件

  1. "きのこ図鑑" と 1200 を渡したら きのこ図鑑 / 1200円 を返す
  2. 価格の埋め込みには %d を使う
  3. fmt.Sprintf で組み立てる

入出力例

formatItem("きのこ図鑑", 1200) → "きのこ図鑑 / 1200円" formatItem("中古スマホ", 24800) → "中古スマホ / 24800円" formatItem("おまけ", 0) → "おまけ / 0円"

ヒント

型紙は `"%s / %d円"` です。スラッシュの前後に半角スペースが1つずつ入ります

`%d` の後ろの `円` は型紙にそのまま書きます。`%d円` で1つのまとまりです

値は型紙の後ろに、`%s` `%d` の順で渡します。`fmt.Sprintf(型紙, name, price)` です

生田 陸人
監修生田 陸人
ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
編集 ゆめさく編集部·公開 2026/08/10

関連レッスン

  • go buildと1バイナリ

    コンパイルして1つの実行ファイルになる意味を知り、Goの配布の楽さを説明できるようになります。

  • つくる: 起動バナー

    第1章の知識だけでfleama-goの起動バナーを組み立て、複数行の整形出力を作れるようになります。

  • 第1章クイズ

    Goの特徴、go run、package main、fmtの使い分けについての理解を確認します。

  • varで宣言する

    varで型付きの宣言を書き、型が名前の後ろに来るGoの書き方に慣れます。

このレッスンに出てくる用語

意味があいまいなまま進んだ語は、ここから読み直せます。

  • 関数処理に名前を付けて再利用できる単位
  • 戻り値呼び出し元への返答を表す点線矢印
  • 処理計算や代入を表す長方形
main.go
学習モード
エディタを読み込んでいます

メモ

fmtで出力する

⌘S で保存