1. fleama-go を渡したとき
  2. 別の名前を渡したとき
  3. 英字の名前を渡したとき
コース一覧
Go入門
実行してみる

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分

実行してみる

go run で動かす

手元に Go を入れると、go というコマンドが1つ増えます。書いたコードを動かすときは、これを使います。

プレーンテキスト

go run main.go

main.go に書いたプログラムがその場で動きます。裏ではコンパイルという作業が走っていて、人間が書いた文字を機械が読める形に翻訳しています。go run は翻訳と実行をまとめてやってくれる、練習向けのコマンドです。

翻訳が挟まるので、書き間違いは動かす前に見つかります。

プレーンテキスト

./main.go:6:2: undefined: fmt

「6行目の2文字目で fmt が分かりません」という意味です。実行してから初めて気づく言語もある中で、Go は動かす前に止めてくれます。

出力してみる

画面に文字を出すには fmt を使います。

Go

package main import "fmt" func main() { fmt.Println("fleama-go を起動します") }

go run main.go と打つと、こう出ます。

プレーンテキスト

fleama-go を起動します

最初の1行が出た瞬間が、環境が正しく整った証拠になります。

このコースの練習では

このコースの演習は、画面への出力ではなく 関数が返す値 で答え合わせをします。fmt.Println は画面に出すだけで、値を返さないからです。

代わりに使うのが fmt.Sprintf です。同じように文字を組み立てますが、画面に出さずに文字列として返します。

Go

msg := fmt.Sprintf("%s を起動します", "fleama-go") // msg には "fleama-go を起動します" が入る

%s の部分が、後ろに渡した文字で置き換わります。この Sprintf が、このコースで最もよく使う道具になります。

要件

  1. "fleama-go" を渡したら fleama-go を起動します を返す
  2. どんな名前でも同じ形になるよう、fmt.Sprintf で組み立てる
  3. import "fmt" を書き足す

入出力例

startupMessage("fleama-go") → "fleama-go を起動します" startupMessage("fleama") → "fleama を起動します" startupMessage("shop") → "shop を起動します"

ヒント

`import "fmt"` を `package main` の下に書き足してください

`fmt.Sprintf("%s を起動します", name)` が組み立てた文字列を返します

`%s` と `を起動します` の間の半角スペースを忘れないでください。1文字でも違うと通りません

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

関連レッスン

  • packageとmain

    package mainとfunc mainがプログラムの起点である理由を説明できるようになります。

  • fmtで出力する

    PrintlnとPrintfを使い分けて、商品名と価格を整形して表示できるようになります。

  • go buildと1バイナリ

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

  • つくる: 起動バナー

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

main.go
学習モード
エディタを読み込んでいます

メモ

実行してみる

⌘S で保存