タグ

ブックマーク / i.loveruby.net (5)

  • Rubyソースコード完全解説 / 青木峰郎

    $Id: index.html,v 1.6 2004/07/20 23:08:12 aamine Exp $ この文書は書籍『Rubyソースコード完全解説』のHTML版です。 ただし初校段階の原稿をベースにしているため、 書籍では修正されている間違いが残っている場合があります。 予め御了承ください。 2004-02-16 に全章を公開しました。 目次 まえがき 序章 第 1 部「オブジェクト」 第 1 章「Ruby言語ミニマム」 第 2 章「オブジェクト」 第 3 章「名前と名前表」 第 4 章「クラス」 第 5 章「ガーベージコレクション」 第 6 章「変数と定数」 第 7 章「セキュリティ」 第 2 部「構文解析」 第 8 章「Ruby言語の詳細」 第 9 章「速習yacc」 第 10 章「パーサ」 第 11 章「状態付きスキャナ」 第 12 章「構文木の構築」 第 3 部「評価」 第

  • Ruby のコーディングスタイル

    $Id: codingstyle.rd,v 1.6 2003/06/18 23:03:32 aamine Exp $ 今日 (1999/02/01)、Linux 2.2.1 のソースをダウンロードしてきた ついでに始めてドキュメント群を読んでみたのだが、そこに CodingStyle なんて文書があった。Linux の作者の Linus 氏が Linux カーネルを 書く時のコーディングスタイルについて書いているのだが、これが なかなかおもしろい。さっそくまねをして、Ruby におけるコーディ ングスタイルについて書いてみようと思う。 とは言っても筆者はヒトのコーディングスタイルをどうこう言えるほど 偉くはないし、これを読む人に「ソースコードはこのように書け」と 言うつもりもない。この文書はあくまで「おれはこうじゃなきゃやだ!」 という自己主張である。 インデント インデントは基的に 2

  • 第19章 スレッド

    rubyスレッド スレッドは「みんな一斉に動く」というのが建前だが、実際には少しの時間ず つ順番に動いているわけだ。厳密に言えばマルチCPUのマシンでそれなりに工 夫すれば同時に二つ動いたりもできるが、それでもCPUの数以上のスレッドが あればやはり順番に動かなければならない。 つまりスレッドを作り出すためにはどこかで誰かがスレッドを切り替えてやら ないといけないわけだが、その手法には大きく分けて二種類ある。 カーネルレベルスレッドと ユーザレベルスレッドだ。これはどちらも読んで字の如く、ス レッドというものをカーネルで作るかユーザレベルで作るかという違いである。 カーネルレベルならマルチCPUを生かして複数のスレッドを同時に動かしたり もできる。 ではrubyのスレッドはどうなのかと言えば、これはユーザレベルスレッドで ある。 そして(それゆえ)同時に動けるスレッドは厳密にただ一つと制限

  • ミニパターン集

    $Id: minipattern.rd,v 1.8 2003/07/29 15:55:24 aamine Exp $ いかにも Ruby 特有ぽいものを中心に小技をあつめました。 Cookbook なんかと違うのは、具体的な課題を解決する方法ではなく 言語上のパターンにしぼったこと。 インスタンス変数の遅延初期化 初期化されているかどうかわからない インスタンス変数を初期化するときは ||= を使う。 @ivar ||= "" # @ivar が既に非 nil ならばそのまま、nil なら "" を代入 1.6.2 まではこう書くと初期化されていない場合に警告が出ていたのだが、 1.6.3 からは ||= を使う場合に限り警告が出なくなった。 Mix-in のメソッド中での初期化などに便利である。 コンテナの遅延初期化 例えば配列のハッシュを作るとき、ハッシュのキーになにが来るか わからな

    nacookan
    nacookan 2008/04/20
    勉強になる
  • https://i.loveruby.net/d/20080216.html

    nacookan
    nacookan 2008/02/19
    ふつうの Ruby プログラマに贈る Ruby プログラミング講座
  • 1