タグ

ruby19に関するbeth321のブックマーク (3)

  • 第3回 Ruby1.9の新機能ひとめぐり(中編):洗練された文法と意味論 | gihyo.jp

    第1回では、YARVやFiberなど有名な機能と、配列処理の強化について紹介しました。 今回は、Ruby1.9で導入された新しい文法や意味論を中心に紹介します。 ブロックパラメータ(仮引数)に関する変更 ブロックパラメータのスコープがブロックローカルに ブロック中の変数はスコープがやや曖昧でした。初出の変数の場合はブロックローカル(ブロックの終了と共に変数も消える)で、ブロックの外ですでに宣言されていた変数の場合はその変数を指す、というルールで、ブロックの外まで見ないと変数のスコープが判断できませんでした。 この問題を軽減するため、1.9ではブロックパラメータは常にブロックローカルであると改定されました。 コード1 ブロックパラメータがブロックローカルに # ローカル変数xを定義する x = "bear" # ブロックローカル変数xを受け取るブロック(ローカル変数のxとは別!) ["dog

    第3回 Ruby1.9の新機能ひとめぐり(中編):洗練された文法と意味論 | gihyo.jp
  • 第5回 Ruby 1.9 の新機能ひとめぐり(後編): 知っておくとお得な機能 | gihyo.jp

    前編では1.9の目玉機能を、中編では文法や意味論の改善について紹介しました。 後編である今回は、知っておくとお得な機能を取り上げたいと思います。きっとあなたのRubyライフを快適にするでしょう。 鬼車による正規表現の強化 1.9では正規表現エンジンに鬼車を採用したため、鬼車による拡張機能が利用可能になりました。 名前を使った参照 マッチした部分文字列を、$1や$2のようなインデックス番号ではなく、名前で参照する機能がつきました。 コード1 正規表現のマッチ部分を名前で参照する # (?<foo>...) にマッチした部分を $~[:foo] で参照できる if "Taro Yamada" =~ /^(?<first_name>\w+) (?<last_name>\w+)$/ p $~[:first_name] #=> "Taro" p $~[:last_name] #=> "Yamada"

    第5回 Ruby 1.9 の新機能ひとめぐり(後編): 知っておくとお得な機能 | gihyo.jp
  • 第1回 Ruby1.9の新機能ひとめぐり(前編):YARV、Fiber、配列処理の強化 | gihyo.jp

    Ruby1.9.1リリース 2009年1月、Ruby1.9.1がリリースされました。Ruby1.9系列初の安定版とされるリリースです。Ruby1.9系列は、従来のRuby1.8系列と比べて、次のような特徴を持っています。 高速化や省メモリ化といった最適化 多言語化をはじめとするさまざまな機能拡張 文法の改良・拡張 その他、気の利いた機能 なかでも、「⁠YARVによる高速化」と「M17N対応(多言語化⁠)⁠」は有名で、聞いたことのある人も多いと思います。 しかしRuby1.9には、他にも様々な改善や新機能が数多くあります。今回執筆を担当する、第1回、第3回、第5回では、あまり知られていない新機能にもスポットをあてつつ、Rubyの新機能を駆け足で紹介したいと思います。 YARV(Yet Another Ruby VM)による高速化 Ruby1.9のインタプリタは、笹田耕一氏が開発している仮想機

    第1回 Ruby1.9の新機能ひとめぐり(前編):YARV、Fiber、配列処理の強化 | gihyo.jp
  • 1