2009-02-01から1ヶ月間の記事一覧

undoとredo

バージョンはGNU Emacs 21.4.1 undo 直前の作業を取り消す C-/ 直前のセーブ時点の状態に戻す M-x revert-buffer ファイルを開いた時点の状態に戻す(バックアップファイルを開く) C-x C-f ~ redo emacsにはデフォルトでredo機能が無いのでredo.elパッケージ…

アクセス制御メソッド

Javaでいうアクセス修飾子は、Rubyではメソッドとして提供される。 インスタンスメソッド用に、public、protected、private がある。 クラスメソッド用に、public_class_method、private_class_method がある。 デフォルトは、クラス内のメソッドであればpub…

オーバーライドとオーバーロード

オーバーライドが成立する条件はメソッド名の同値性だけ。 たとえば以下の例 class Animal def speak "hello" end endclass Dog def speak(word) "hello " + word end enddog = Dog.newputs dog.speak => 14:in 'speak': wrong number of arguments (0 for 1…

instance_of?メソッド

"aaa".instance_of? String => true "aaa".instance_of? Object => false String === "aaa" => true Object === "aaa" => true "aaa" === "aaa" => true String === String => false String === Object => false A.instance_of? B は、AがBの直接のインスタ…

equal?メソッドと==メソッド

hoge1 = "aaa" hoge2 = "aaa"puts hoge1 == hoge2 => true puts hoge1.equal? hoge2 => false rubyの==メソッドはJavaのequals()メソッドと同様に、値が同値であることの検証を行う。 rubyのequal?メソッドはJavaの==演算子と同様に、オブジェクトが同一であ…

superキーワード

Rubyのsuper class Parent def speak(word) word end endclass Child def speak(word) super end endchild = Child.newputs child.speak('hello') => hello スーパークラス(またはインクルードしたモジュール)のメソッドを呼び出す構文。両方に定義されて…

クラスとモジュール

リテラルとクラス 1.class => Fixnum 0.5.class => Float "hoge".class => String 'a'.class => String :hoge.class => Symbol ["hoge1", "hoge2"].class => Array {"var" => "value"}.class => Hash (1..5).class => Range ("abc".."xyz").class => Range /…

Ruby 1.8.7の導入

※ Ruby-1.9.1がまともに使えなかったのでRuby1.8.7に変更。1.9の安定版が出るまでは1.8で。 Rubyのインストール # wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7.tar.gz # tar xzvf ruby-1.8.7.tar.gz # cd ruby-1.8.7 # ./configure --prefix=/usr…

Ruby 1.9.1の導入

CheckInstallのインストール 最新のcheckinstall-1.6.1のrpmパッケージを取得する。 # wget http://asic-linux.com.mx/~izto/checkinstall/files/rpm/checkinstall-1.6.1-1.i386.rpm rpmパッケージからインストールする。 # rpm -ivh checkinstall-1.6.1-1.i…