Edited at

Crystal 入門

More than 3 years have passed since last update.

Crystal というのが Ruby 似の言語らしいので試してみる。


vim

https://github.com/rhysd/vim-crystal を入れる。


仕様その他

http://crystal-lang.org/docs/ に公式のドキュメントがあるので読んでいく。

大体 Ruby と同じ文法だと思って差し支えないようだけれど、いくつか差異があるので気をつけながら読む。

ぐっと来たとこ書いていく


a = 1

a = "string"

これは通る。


オーバーロード

http://crystal-lang.org/docs/syntax_and_semantics/overloading.html

class Pigeon

getter name

def initialize(@name)
end

def appeal
puts("My name is #{@name}.")
end

def appeal(n : Int)
n.times do
appeal
end
end
end

hato = Pigeon.new("rosylilly")

hato.appeal
hato.appeal(5)
hato.appeal(5.5) # => no overload matches

Ruby にも欲しい……


名前付き引数

http://crystal-lang.org/docs/syntax_and_semantics/default_and_named_arguments.html

そう、こう、こういうのでいいんだよ。


Abstract types

http://crystal-lang.org/docs/syntax_and_semantics/virtual_and_abstract_types.html

さっきから欲しいものバンバンでてきてすごい


Macro

http://crystal-lang.org/docs/syntax_and_semantics/macros.html

マクロあるの……


触ってみた