Go でプロコンに出てみた (前編)
近年、Go言語を採用したプロダクト・企業も増えてきたという話を聞くので、ABC で使ってみた。 *1
入門書は読まず、詰まってからググる方針で。
なお、最終的にはこれを投げました。
Submission #415726 - AtCoder Beginner Contest 024 | AtCoder
目次
- 前編
- 処理系をインストールしよう
- コンパイルしよう
- 後編
- 入力を読もう
- 配列を使おう
- 繰り返しを書こう
処理系をインストールしよう
Mac を使ってみたので HomeBrew でインストール。
$ brew search go algol68g goocanvas mongo-c arangodb google-app-engine mongodb bogofilter google-perftools mongodb24 forego google-sparsehash mongodb26 ggobi google-sql-tool mongoose go googlecl pango go-app-engine-32 goolabs pangomm go-app-engine-64 gosu pangox-compat go12 gource php53-mongo go13 gringo php54-mongo goaccess gst-plugins-good php55-mongo gobby gst-plugins-good010 php56-mongo gobject-introspection hugo pygobject gocr jpegoptim pygobject3 goffice libmongoclient ringojs golo libmongoclient-legacy homebrew/games/cgoban Caskroom/cask/google-drive (以下略)
なんかいっぱい出てきたけどとりあえず go
というパッケージ名で良さそう。
$ brew install go Warning: go-1.4.2 already installed
身に覚えがないけど昔インストールしていたらしい。
コンパイルしよう
そもそも Go 言語ってインタープリタ言語なのかコンパイラ言語なのかよく知らないのだが、ダミーを作ってとりあえず処理系に食わせてみよう。
$ go arc024c.go go: unknown subcommand "arc024c.go" Run 'go help' for usage.
え。。どうやってコンパイルするんだ?とりあえず言われた通りに help を見よう。
$ go -help Go is a tool for managing Go source code. Usage: go command [arguments] The commands are: build compile packages and dependencies clean remove object files env print Go environment information fix run go tool fix on packages fmt run gofmt on package sources generate generate Go files by processing source get download and install packages and dependencies install compile and install packages and dependencies list list packages run compile and run Go program test test packages (以下略)
なんかたくさん出てきたー。 雰囲気からすると maven とか sbt とか cabal とか的な、ビルドツールとパッケージマネージャが付いているっぽい。 とはいえ、コマンド多すぎてどれ呼べばいいかよくわからん。
結局、あれこれしてみた結果 go run
を呼べばいいとわかった。
続く
後編に続く