Index
- はじめに
- Hello World
- 標準入出力
- [変数・定数]
- 型変換
- [制御構文]
- 配列~
- ソート
- 関数
- ASCII変換
- math パッケージ
この記事を書いた理由
競技プログラミングを始めるにあたって、自分のGO学習ノートとして、また競プロのチートシートとして使用するために書く。
方針
競プロのチートシートとして使うことを前提としているため、以下の方針で作成する。
- 記法の説明のみに注力し、プログラミングの説明は行わない。
- できる限りシンプルな例を記載する。
- 特に使用頻度の高い機能に絞り、情報量を絞る。
競プロでGoを選択した理由
本格的にアルゴリズムを学ぶのであればC/C++がベストな選択だが、競プロはコーディングに掛かった時間が評価されるため、少ないコード量で書ける言語を候補とした。
候補は、Go、Python、Ruby、Javaなど人気ランキング上位のものとしたが、以下の理由でGoとした。
-
速度とメモリ消費量
C++と同等の速度、Pythonより10倍、Javaより80倍速い。
競プロでは、実行速度とメモリ消費量も評価されるため、高速で低メモリ消費量のGoを選択
※ あくまで競技プログラミングでの平均であり、書き方、用途により異なる。 -
個人的理由
プロダクトの作成ではC/C++を使っているが、ツールなどを作るときは時間がかかり過ぎるため、少ないコード量で書ける言語を覚えたかった。
また、単一の言語に拘るとエンジニアとしての幅を狭めるため、複数の言語をそれなりのレベルで使えることを目標としている。
そして、Goは今後の仕事の受注として将来性がありそうと感じた。
#環境
環境構築の手間を省くため、Paiza.IOを利用する。
WEB上でビルド実行でき、標準入出力が簡単に行える。