- - 目次

Object

全てのクラスのスーパークラス.このクラスはオブジェクトの一般的 な振舞いを定義しています.

スーパークラス:

Kernel

メソッド:

self == other

二つのオブジェクトが等しいかどうかを判定します. Kernelクラスでの定義は二つのオブジェクトが同じ オブジェクトIDを持つかどうかで判定しています.このメソッドは それぞれのクラスでその性質に合わせて再定義されるべきです.

self =~ other

古いタイプの正規表現比較obj =~ /RE/をサポートす るためのメソッドです.デフォルトは ==と同じ働きをします.

self === other

このメソッドはcase 文での比較に用いられます.デフォルトは ==と同じ働きをしますが, この挙動はサブクラスで所属性のチェックを実現するため 適宜再定義されます.

clone
dup

オブジェクトの複製を作ります.複製については

obj == obj.clone
はいつも成立しますが,
obj.equal?(obj.clone)
は一般的には成立しません.

dup

def dup
  self.clone
end
と定義されています.

clonedupはオブジェクトをコピーし ますが,オブジェクトの指している先まではコピーしません(つま りshallow copy).

display([out])

オブジェクトをoutに出力します.outの省 略値は$>です.

def display(out=$>)
  out.print self
end
public :display
eql?(other)

二つのオブジェクトが等しいかどうかを判定します.このメソッド はHashでふたつのキーが 等しいかどうかを判定するのに使われます.このメソッドを再定義 した時には hash メソッドも 再定義しなければなりません.

eql?のデフォルトの定義はeqaul?と同 じくオブジェクトの同一性判定になっています.

equal?(other)

二つのオブジェクトが同じオブジェクトIDをとっている時真を返し ます.このメソッドを再定義するべきではありません.

extend(module...)

引数で指定したモジュールで定義されているメソッドが selfの特異メソッドとして追加されます.

hash

オブジェクトのハッシュ値を返します. Hashクラスでオブジェク トを格納するのに用いられています.A.eql?(B)が成 立する時は必ずA.hash == B.hashが成立する必要が あるので,eql?を再定義した時には必ずこちらもそ れに合わせて再定義してください.

id

各オブジェクトについて一意の整数値を返します.

initialize(...)

ユーザ定義クラスのオブジェクト初期化メソッド.このメソッドは Class#newから新し く生成されたオブジェクトの初期化のために呼び出されます.デフォ ルトの動作ではなにもしません.サブクラスではこのメソッドを必 要に応じて再定義されることが期待されています.initializeには Class#newに与えられた引数が そのまま渡されます.

initializeという名前を持つメソッドは自動的に privateに設定されます.

inspect

オブジェクトを人間が読める形式の文字列に変換します.

instance_eval(expr)
instance_eval{...}

オブジェクトのコンテキスト(selfがオブジェクトに 設定されているメソッド内と同じコンテキスト)でexpr として与えられた文字列を評価します.ブロックが与えられた場合 には文字列ではなくブロックをオブジェクトのコンテキストで評価 しますので,毎回文字列をコンパイルする必要がありません.

selfが置き換えられるの で呼び出されるメソッドやインスタンス変数も変わってしまうこと に注意してください.

instance_of?(class)

オブジェクトselfがクラスclassのイン スタンスである時,真を返します. obj.instance_of?(c)が成立する時には,いつも obj.kind_of?(c)も成立します.

instance_variables()

オブジェクトselfのインスタンス変数の一覧を配列 として返します.

kind_of?(class)
is_a?(class)

オブジェクトselfがクラスclassかそのサブクラスのインスタン スである時,真を返します.

method_missing(msg_id, ...)

メソッドが定義されていなかった時,このメソッドが呼び出されま す.msg_idはメソッド名(シンボル)で,引数が残りの 引数として渡されます.

methods

そのオブジェクトが理解できるpublicメソッド名の一覧を配列とし て返します.

nil?

レシーバが nil かどうかをチェックします.

private_methods

そのオブジェクトが理解できるprivateメソッド名の一覧を配列とし て返します.

remove_instance_variable(var)

そのオブジェクトから指定した名前のインスタンス変数を取り除き ます.そのオブジェクトがその名前のインスタンス変数を持ってい なくても例外などを発生させません.

respond_to?(mesg[,priv])

オブジェクトがmesgで指定される public メソッドを持 つ時,真を返します.mesgはシンボル(Fixnum)または 文字列です.省略可能な引数privが与えられ,その値 が真である時,private メソッドに対しても真を返します.

send(symbol[, args...])

symbolで指定されるメソッドを引数argsと ともに呼び出します.イテレータとして呼び出された時には指定さ れたメソッドをイテレータ呼出しします.

singleton_method_added(id)

特異メソッドが追加された時にインタプリタから呼び出されます.

singleton_methods

そのオブジェクトに対して定義されている特異メソッド名の一覧を 配列として返します.

taint

オブジェクトの「汚染マーク」をセットします.

tainted?

オブジェクトの「汚染マーク」がセットされている時真を返します.

to_s

オブジェクトの文字列表現を返します.このメソッドは printsprintfの 内部で使われています.

to_a

オブジェクトを配列に変換します.普通に配列に変換できないよう なオブジェクトは自身を含む1要素の配列に変換されます.

type

レシーバのクラスを返します.

untaint

オブジェクトの「汚染マーク」を取り除きます.汚染マークを取り 除くことによる危険性はプログラマが責任を負う必要があります. セキュリティレベルが3以上の場合は取り除くことができません.


- - 目次

matz@netlab.co.jp