Go言語の勉強部屋
2012年4月30日作成
Google Go言語(The Go Programming Language version 1:Go 1)の勉強部屋です.
2011年度に実施した3年生向けセミナーの一部(演習問題とその解説)をFacebook ページ「Google Goプログラミング言語の勉強部屋」として公開していますが,Goの安定版リリース時(2102年3月)に言語仕様などが変更されたので,それに合わせて修正したものをこのページに公開します.(Facebookページの使い勝手が悪いので('<'や'>'があると修正が面倒なので),今回はこちらに公開).
想定読者は,C,C++,Javaなどでのプログラミング経験があり, Goプログラミング言語チュートリアルや雑誌などの解説記事を読んだことがある方です.Go言語の"入門"ですが,プログラミングの入門ではありません.
Go言語
Goは,2009年10月末にGoogleが発表した新しいプログラミング言語です.2012年3月に安定版(Go version 1:Go 1)がリリースされました.文法はCやJavaと似ていますが,チャネルによる並列処理や,埋め込みによる継承,ダックタイピングなど,CやJavaとは異なる特徴を持っています.C, C++, Javaの後継となるかは未知数ですが,その考え方を知ることは,他の言語でのプログラム開発にも役立つにちがいありません.
- バージョン
- このページにあるGo言語のコードは,go1.0.1のコンパイラ,パッケージを利用して試しています.
- Go1のインストールとコンパイル
- 次のサイトを参照してください.
- go build foo.go でfoo.goというソースファイルをコンパイルしてfooまたはfoo.exeというロードモジュールを生成します.
- リソース
目次
肩慣らしの演習
- Hello, World! (演習1-0)
- 関数の定義,制御文if (演習1-1)
- 制御文 switch (演習1-2)
- 変数の宣言,配列,制御文 for (演習1-3)
- 制御文 for range (演習1-4)
- 構造体,ポインタ,メソッド (演習2-1)
- 匿名フィールド(埋め込みフィールド)で継承のようなこと (演習2-2)
- const,iota (演習2-3)
Go言語でタイピングゲーム
- パッケージtextboxの仕様,スライス,godoc (準備)
- パッケージの利用 (演習3)
- 匿名フィールドの利用,Sleep関数 (演習4)
- ゴルーチン,bufioパッケージ,osパッケージ,かな・漢字の扱い (演習5)
- execパッケージ,defer文 (演習6)
- チャネル,select文,break文,ビープ音を鳴らす(時間制限を設ける,音を鳴らしてみる) (演習7)
補足の演習
- インターフェース,型switch,型アサーション,組み合せ代入 (演習a1)
- 関数型,関数リテラル (演習a2)
- Go言語でWebアプリケーション(httpパッケージ) ( 演習 a3)
- Go言語でWebアプリケーション(templateパッケージ) ( 演習 a4)
- Go言語でWebアプリケーション(メモ・アプリ) ( 演習 a5)
[tips] Windows7のコマンドプロンプトの文字コード
Go言語では文字コードとしてUTF-8を使用します.ですから,Windowsのコマンドプロンプトで日本語を表示するGoのプログラムを実行するには,コマンドプロンプトの文字コード(コードページ)をUTF-8に変更する必要があります.
Windows7のコマンドプロンプトでUTF-8を使うには,まずコマンドプロンプトのフォントをラスターフォントから日本語フォント(MSゴシックなど)に変更し,そのあとコードページを変更します.
- コマンドプロンプトのフォントを日本語フォントにする.
- ラスターフォントだと,2.で文字コードを変更したとき文字化けする
- コマンドプロンプトの文字コードをUTF-8にする.
- コードページを変更すコマンド chcp を用いる.
- chcp 65001 でコードページがUTF-8になる.
- コードページを元(shift-JIS)に戻すには chcp 932
- コードページを参照するには chcp
- 一度設定すれば変更が保存され,同じショートカットからコマンドプロンプトを立ち上げれば,再度設定する必要はない.
- 2.を先にやると,1.で日本語フォントを選択できなくなるので注意.
- コードページを変更すコマンド chcp を用いる.