今週、Rubyに浮気します

rubybooks.jpg

$fp = fopen($file, 'r');
if (!$fp) {
  die("cannot open [$file]\\n");
}
while (1) {
  $buf = fgets($fp);
  if ($buf == '') {
    break;
  }
}
fclose($fp);

このコードを書いているとき、僕の中で何かが崩れました。

少し前から、「PHP?言語じゃないよ」「Rubyはいいよ」「Rubyは最高だよ」と言われていたので浮気相手はRubyです。勢いをつけるために本を購入。昨日の朝、嵐の中到着しました。

どちらも知人のオススメなので安心。
なんとなく僕の中で人工無脳をつくってみたいなぁ、という気持ちもあったので「恋するプログラム」がジャストミートです。
koisuru_picture.jpg
!?

2章までぱーっと。文章が軽快で読みやすいです。
本ではWindowsですが自分はLinux環境(FedoraCore5)にしたので以下のところは自分でやる必要がありました。

# yum install irb
$ vi ~/.irbrc
require "irb/completion"
IRB.conf[:SAVE_HISTORY] = 100
$ irb

Rubyリファレンスマニュアル – irb

これからしばらくはRubyの話題が多くなりそうです。

This entry was posted in いじる. Bookmark the permalink. Both comments and trackbacks are currently closed.

6 Comments

  1. Posted 2007/03/13 at 10:22 am | Permalink

    > このコードを書いているとき、僕の中で何かが崩れました。
    とりあえずrubyでそのソースコードを見たい!

  2. Posted 2007/03/13 at 11:09 am | Permalink
    fp = File.open('file.rb', 'r')
    while line = fp.gets()
        print line
    end

    こんな感じ?
    いや、まだぜんぜんわかってないけど(^^;
    fcloseを勝手にやってくれるのと例外処理になっているのがPHPとは違うのかな。

    ブロックにしないとcloseは自動化されない模様。

  3. Posted 2007/03/13 at 12:53 pm | Permalink

    ブロックを使うとこう書いたりもできます。
    慣れるまでは変な感じですが…。

    open(‘file.rb’).each do |line|
    print line
    end

    この辺が参考になるかもしれません。
    http://www.namaraii.com/rubytips/?%A5%D5%A5%A1%A5%A4%A5%EB%A5%A2%A5%AF%A5%BB%A5%B9

  4. Posted 2007/03/13 at 1:38 pm | Permalink

    ぁ、ありがとうございます。ブロックで書くとちょっと長くなるのか?と思っていたのですが.eachで繋がるんですね。

    ところでこの情報、知らなかったのでめっちゃ助かりました。
    vim でマウスが使える
    http://www.machu.jp/diary/20070310.html#p01

  5. hello
    Posted 2007/03/13 at 5:38 pm | Permalink

    僕が PHP で書くならこんな感じ。

    foreach (file($file) as $buf) {
    if ($buf == ”) break;
    }

  6. Posted 2007/03/13 at 11:59 pm | Permalink

    あ、よく考えたら、
    open(‘file.rb’).each do |line|

    fp = open(‘file.rb’)
    fp.each do |line|
    の短縮なので、openでブロックを使っている訳じゃなかったです。

    マウスの件は衝撃でした。おさかなの人に感謝です。

Page optimized by WP Minify WordPress Plugin