hellkite 日記と雑記とメモ。

Shiki Kazamaの駄文と音楽と、時々技術な感じ

Rubyガイドを読んで驚いたこと


スポンサーリンク


Rubyを使ってみた - hellkite 日記と雑記とメモ。
というわけで、感動的Rubyガイド*1を読んだのですが文法的に驚いたことを列挙。

数字をアンダースコアで区切ることができる

print 12_000_000
print 1000_0000

結果は、それぞれ

12000000
10000000

と出る。

定数は大文字で始める

英語の固有名詞と同じ書き方。

範囲

(1..3)

これは、1〜3だが、

(1...3)

は1〜2。


Pythonで1〜100の範囲を示すには、

range(1..101)

だが、Rubyでは、

(1..100)

101などど関係の無い数が出てこないため、Rubyの方が見やすい

正規表現が言語機能として取り込まれている

モジュールをインクルードしたりする必要はないらしい。

/[0-9]+/

すぐ使えるのは、文字処理に便利。

破壊的メソッド

対象の値を直接変更する。

str.gsub!( before, after )

三重等号

こういうことやりたいときってのは意外と多い。

(1886..1913) === 1905

で、ちゃんとtrueが返ってくる。

動的プログラミング

スプリクト言語では一般的なのかもしれないけど、あまり馴染みの無い自分は驚いた。

eval ("print 1+1")

結果は2。
evalは文字列として保存されたRubyプログラムを実行する。
なるほどなるほど。こういう機能があるのか。
なんかワンライナープログラムは文字列作ってるなーと思っていたけれども。


http://www.jaist.ac.jp/~m-hatake/ruby/ruby4.htm
そうそう、このページの4章にあるようなプログラムが全く読めなかった。
もっと慣れが必要だけど、少しだけインタプリタ言語の本質に近づけた気がする。



感動的小説

全体に渡って、こんな文章を書くことができるという才能が理解できなかった。
そのわりに、Rubyの説明自体はわかりやすいところが微妙にムカつくw