ふり返る暇なんて無いね

日々のメモ書きをつらつらと。メインブログに書くほどでもないことを流してます

crystal langことはじめ

crystalをちょっと触ってみたくなったので、hello worldするまで。 基本ドキュメントに書いてあります。

crenv(anyenv)で実行環境をインストール

anyenvは入ってる前提です。plenvやrbenvと同じノリで、開発したいのでcrenvを使います。

github.com github.com

crenvをインストール

cd ~/.anyenv
git pull
anyenv install crenv
exec $SHELL -l

crenvをインストール

現時点で最新の0.7.5をインストール

crenv install 0.7.5
exec $SHELL -l
crenv global 0.7.5

ちゃんとインストールされてることを確認。

% crenv versions
* 0.7.5 (set by /Users/masasuzu/.anyenv/envs/crenv/version)

% crystal --version
Crystal 0.7.5 [2a33a87] (Thu Jul 30 17:19:13 UTC 2015)

プログラム実行

こんな内容の hello.cr を書きます。

puts "hello world"

crystalもしくはcrystal runで実行出来ます。

crystal hello.cr
# もしくは
crystal run hello.cr

crystal buildで実行バイナリを生成してくれます。

crystal build hello.cr
./hello

--release オプションを付けると最適化してビルドしてくれます。

crystal build hello.cr --release

蛇足:プロジェクト作成

crystalには言語標準でプロジェクトの雛形を作ってくれる機能があります。べんり!

crystal init appでアプリケーション、crystal init libでライブラリプロジェクトの雛形が作れます。

% crystal init app hello-world
      create  hello-world/.gitignore
      create  hello-world/LICENSE
      create  hello-world/README.md
      create  hello-world/.travis.yml
      create  hello-world/Projectfile
      create  hello-world/src/hello-world.cr
      create  hello-world/src/hello-world/version.cr
      create  hello-world/spec/spec_helper.cr
      create  hello-world/spec/hello-world_spec.cr
Initialized empty Git repository in /Users/masasuzu/project/crystal/tmp/hello-world/.git/

SEE ALSO

http://crystal-lang.org/api/

crystal-lang.org

qiita.com