1時間覚えるRubyで入門した

rubyは読めた方が良いなぁと思っていたのですが、タイミングが無くてほったらかしでした。で、「1時間で覚えるRuby」という面白そうな記事を見つけたので内容を写経して見ました。結果は45分でこなせて効果もあったのでオススメです。

気付いた事を箇条書きにしておきます。

  • Integer型の0はTrue扱い
  • irbがpythonで言うところのipython
  • pythonで言うところの辞書は、perl同様ハッシュと呼ぶ
  • メンバ変数には@を付ける
  • クラス変数には@@を付ける
  • to_sでtostring
  • インクリメント演算子はない
  • 正規表現はperlに似てる。置換はsub, gsubを使う
  • ARGFにファイルハンドルが入ってる
  • 知らないオブジェクトはirbのタブ補完機能で補完リストを眺めたらなんとかなる
  • ipythonで言うところの?とか??の機能がirbで見つからない

上記エントリには記述がなかったですが、写経しながら調べた事は以下。

  • gemがperlで言うところのcpanコマンド。gem helpでコマンド一覧
  • rubyforgeがperlで言うところのcpan。でも廃止されるらしい。
  • 組み込み型のStringとかIntegerとかでもメソッドを追加(変更?)できる

もう少し慣れたら後はリファレンスでなんとかなりそうな雰囲気ではあります。とりあえず最後のワードカウントを自力で書いたら以下のようになりました。

#!/usr/bin/ruby
# usage: wc_test.rb file

line_num = 0
dic = {}
for line in ARGF
  line_num += 1
  for word in line.split(/\s/)
    if dic[word]
      dic[word] += 1
    else
      dic[word]= 1
    end
  end
end

total = 0
for k, v in dic.sort{|a,b| a[1] < => b[1]}
  total += v
  printf("%s : %d\n", k, v)
end

printf("%d lines, %d kinds, %d words",
       line_num, dic.size, total)

今のところrubyで何か書きたい訳ではなくて、幾つか読みたいソースがあるだけなので、ぼちぼち覚えて行こうと思います。

追記
ついでにirbを少しだけカスタマイズしました。

$ gem install what_methods
$ gem install wirble

上記モジュールをインストールした後に~/.irbrcを編集します。これでirbのヒストリが使えたり色がでたりと便利になりました。

require 'rubygems'
require 'activesupport'
require 'pp'
require 'irb/completion'
require 'what_methods'
require 'wirble'

IRB.conf[:SAVE_HISTORY]=1000
Wirble.init
Wirble.colorize

Leave a Reply

Your email address will not be published. Required fields are marked *