JIS X 3017:2013 プログラム言語Ruby | ページ 44

210
X 3017 : 2013 (ISO/IEC 30170 : 2012)
動作 :
a) rgsのそれぞれの要素Eに対し,添字順に,次の手順を行う。
1) に対しinspectメソッド(15.3.1.3.17参照)を呼び出し,Xを呼出し結果の値とする。
2) がStringクラスのインスタンスでない場合,このメソッドの動作は未規定とする。
3) bject::STDOUTに対し,Xを実引数としてwriteメソッド(15.2.20.5.20参照)を呼び出す。
4) bject::STDOUTに対し,文字0x0aだけを含む新しく作ったStringクラスの直接のインスタン
スを実引数としてwriteメソッドを呼び出す。
b) 処理系定義の値を返す。
15.3.1.2.10 Kernel.print
Kernel.print(*args)
可視性 : public
動作 : IOクラスのprintメソッド(15.2.20.5.11参照)をObject::STDOUTに対し同じ実引数で呼び出
し,呼出し結果の値を返す。
15.3.1.2.11 Kernel.puts
Kernel.puts(*args)
可視性 : public
動作 : IOクラスのputsメソッド(15.2.20.5.13参照)をObject::STDOUTに対し同じ実引数で呼び出
し,呼出し結果の値を返す。
15.3.1.2.12 Kernel.raise
Kernel.raise(*args)
可視性 : public
動作 :
a) rgsの長さが2より大きい場合,このメソッドの動作は未規定とする。
b) rgsの長さが0の場合,次の手順を行う。
1) このメソッドが呼び出された地点が《rescue修飾子付き代入》の《演算子式》2,《rescue修飾文の後退
文》,又は《rescue節》の中である場合,Eを現在の例外とする(14.3参照)。
2) そうではない場合,RuntimeErrorクラスに対しnewメソッドを呼び出す。Eを呼出し結果の値
とする。
c) rgsの長さが1の場合,Aをargsの唯一の要素とする。
1) がStringクラスのインスタンスの場合,RuntimeErrorクラスに対し,Aを実引数としてnew
メソッドを呼び出す。Eを呼出し結果の値とする。
2) そうではない場合,exceptionメソッドをAに対して呼び出す。Eを呼出し結果の値とする。
3) がExceptionクラスのインスタンスでない場合,TypeErrorクラスの直接のインスタンスを例
外として発生させる。
d) rgsの長さが2の場合,F及びSをそれぞれargsの最初及び最後の要素とする。
1) に対し,Sを実引数としてexceptionメソッドを呼び出す。Eを呼出し結果の値とする。
2) がExceptionクラスのインスタンスでない場合,TypeErrorクラスの直接のインスタンスを例
外として発生させる。
e) を例外として発生させる。

――――― [JIS X 3017 pdf 216] ―――――

                                                                                            211
X 3017 : 2013 (ISO/IEC 30170 : 2012)
15.3.1.2.13 Kernel.require
Kernel.require(string)
可視性 : public
動作 : requireメソッドは,stringに対応する外部プログラムPを評価する。stringからPがどのように
決定されるかは処理系定義とする。
このメソッドが呼ばれた場合,次の処理を実行する。
a) tringがStringクラスのインスタンスでない場合,このメソッドの動作は未規定とする。
b) tringに対応する外部プログラムPを探す。
c) そのような外部プログラムが存在しない場合,LoadErrorクラスの直接のインスタンスを例外とし
て発生させる。
d) が《プログラム》(10.1参照)という形式でない場合,SyntaxErrorクラスの直接のインスタンス
を例外として発生させる。
e) の評価のために一時的に,実行環境の状態を次のように変更する。
1) self を,現在の実行環境の self の一番下のオブジェクトだけを含むようにする。
2) クラスモジュールリスト を,Objectクラスだけを含むリストとする。
3) 省略時可視性 を,可視性privateだけを含むようにする。
4) 実行環境のその他の全ての属性は,空のスタックとする。
f) 手順e)で設定した実行環境の下で,Pを評価する。
g) 実行環境の状態を,手順e)の直前の状態に戻す。この処理は,Pの評価中に例外が発生したがそれが
処理されなかった場合であっても行う。
注記 Pの評価が元の実行環境内のオブジェクトの属性を書き換えた場合,復元された実行環境内
の値も影響を受けることに注意する必要がある。
h) 手順f)で例外が発生して処理されなかった場合を除き,trueを返す。
15.3.1.3 インスタンスメソッド
15.3.1.3.1 Kernel#==
==(other)
可視性 : public
動作 :
a) レシーバとotherとが同じオブジェクトの場合,trueを返す。
b) そうではない場合,falseを返す。
Objectクラスがクラス継承木の根でない場合,“==” メソッドは,Kernelモジュールに定義する代わ
りに,クラス継承木の根であるクラスに定義しなければならない。
15.3.1.3.2 Kernel#===
===(other)
可視性 : public
動作 :
a) レシーバとotherとが同じオブジェクトの場合,trueを返す。
b) そうではない場合,“==” メソッドを,レシーバに対し,otherを実引数として呼び出す。Vを呼出し
結果の値とする。

――――― [JIS X 3017 pdf 217] ―――――

212
X 3017 : 2013 (ISO/IEC 30170 : 2012)
c) が真の場合,trueを返す。そうではない場合,falseを返す。
15.3.1.3.3 Kernel#
(string)
可視性 : private
動作 : Kernel. メソッドと同じとする(15.3.1.2.1参照)。
15.3.1.3.4 Kernel#id
id
可視性 : public
動作 : objectidメソッドと同じとする(15.3.1.3.33参照)。
15.3.1.3.5 Kernel#send
send(symbol, *args, &block)
可視性 : public
動作 : sendメソッドと同じとする(15.3.1.3.44参照)。
Objectクラスがクラス継承木の根でない場合,“send” メソッドは,Kernelモジュールに定義
する代わりに,クラス継承木の根であるクラスに定義しなければならない。
15.3.1.3.6 Kernel#blockgiven・
blockgiven・
可視性 : private
動作 : Kernel.blockgiven・メソッドと同じとする(15.3.1.2.2参照)。
15.3.1.3.7 Kernel#class
class
可視性 : public
動作 : レシーバのクラスを返す。
15.3.1.3.8 Kernel#clone
clone
可視性 : public
動作 :
a) レシーバがNilClass,TrueClass,FalseClass,Integer,Float,又はSymbolのインスタ
ンスの場合,TypeErrorクラスの直接のインスタンスを例外として発生させる。
b) インスタンス変数の束縛を一つももたないような,レシーバのクラスの直接のインスタンスOを作る。
c) レシーバのそれぞれのインスタンス変数束縛Bについて,同じ名前及び値をもつ変数束縛をOのイン
スタンス変数束縛の集合内に作る。
d) レシーバが特異クラスと関連付けられている場合,Eoをその特異クラスとして次の手順を行う。
1) 特異クラスEnを作る。Enの直接のスーパークラスは,Eoの直接のスーパークラスとする。
2) oのそれぞれの定数束縛Bv1について,同じ名前及び値をもつ変数束縛をEnの定数束縛の集合内に
作る。
3) oのそれぞれのクラス変数束縛Bv2について,同じ名前及び値をもつ変数束縛をEnのクラス変数束
縛の集合内に作る。
4) oのインスタンスメソッドのそれぞれの束縛Bmについて,同じ名前及び値をもつメソッド束縛を

――――― [JIS X 3017 pdf 218] ―――――

                                                                                            213
X 3017 : 2013 (ISO/IEC 30170 : 2012)
Enのインスタンスメソッド束縛の集合内に作る。
5) とEnとを関連付ける。
e) nitializecopyメソッドをOに対しレシーバを実引数として呼び出す。
f) を返す。
15.3.1.3.9 Kernel#dup
dup
可視性 : public
動作 :
a) レシーバがNilClass,TrueClass,FalseClass,Integer,Float,又はSymbolのインスタ
ンスの場合,TypeErrorクラスの直接のインスタンスを例外として発生させる。
b) インスタンス変数の束縛を一つももたないような,レシーバのクラスの直接のインスタンスOを作る。
c) レシーバのそれぞれのインスタンス変数束縛Bについて,Bと同じ名前及び値をもつ束縛をOのイン
スタンス変数束縛の集合内に作る。
d) nitializecopyメソッドを,Oに対し,レシーバを実引数として呼び出す。
e) を返す。
15.3.1.3.10 Kernel#eql・
eql・(other)
可視性 : public
動作 : “==” メソッドと同じとする(15.3.1.3.1参照)。
15.3.1.3.11 Kernel#equal・
equal・(other)
可視性 : public
動作 : “==” メソッドと同じとする(15.3.1.3.1参照)。
Objectクラスがクラス継承木の根でない場合,equal・メソッドは,Kernelモジュールに定義する代
わりに,クラス継承木の根であるクラスに定義しなければならない。
15.3.1.3.12 Kernel#eval
eval(string)
可視性 : private
動作 : Kernel.evalメソッドと同じとする(15.3.1.2.3参照)。
15.3.1.3.13 Kernel#extend
extend(*modulelist)
可視性 : public
動作 : Rをレシーバとする。
a) odulelistの長さが0の場合,ArgumentErrorクラスの直接のインスタンスを例外として発生させ
る。
b) odulelistのそれぞれの要素Aについて,次の手順を行う。
1) がModuleクラスのインスタンスでない場合,TypeErrorクラスの直接のインスタンスを例外
として発生させる。
2) がClassクラスのインスタンスの場合,TypeErrorクラスの直接のインスタンスを例外として

――――― [JIS X 3017 pdf 219] ―――――

214
X 3017 : 2013 (ISO/IEC 30170 : 2012)
発生させる。
3) に対し,Rを実引数としてextendobjectメソッドを呼び出す。
4) に対し,Rを実引数としてextendedメソッドを呼び出す。
c) を返す。
15.3.1.3.14 Kernel#globalvariables
globalvariables
可視性 : private
動作 : Kernel.globalvariablesメソッドと同じとする(15.3.1.2.4参照)。
15.3.1.3.15 Kernel#hash
hash
可視性 : public
動作 : このメソッドはIntegerクラスのインスタンスを返す。このメソッドが同じオブジェクトに対し
て複数回呼び出された場合,このメソッドが返すIntegerクラスのインスタンスはどれも同じ値をもた
なければならない。
規格適合処理系がeql・メソッド(15.3.1.3.10参照)を上書きする場合,その処理系はeql・メソッドを
上書きしたクラス又はモジュール内に,次のような条件を満たす形でhashメソッドを上書き定義しなけ
ればならない。
あるオブジェクトOに対し,eql・メソッドを,あるオブジェクトPを実引数として呼び出した結果が
真の場合,O及びPに対しhashメソッドを呼び出した結果が同じ値をもつIntegerクラスのインスタ
ンスでなければならない。
15.3.1.3.16 Kernel#initializecopy
initializecopy(original)
可視性 : private
動作 : initializecopyメソッドは,あるオブジェクトがcloneメソッド(15.3.1.3.8参照)又はdup
メソッド(15.3.1.3.9参照)によって作られる際に呼び出す。
このメソッドが呼び出された場合,次の手順を行う。
a) レシーバのクラスとoriginalのクラスとが異なる場合,TypeErrorクラスの直接のインスタンスを例
外として発生させる。
b) 処理系定義の値を返す。
15.3.1.3.17 Kernel#inspect
inspect
可視性 : public
動作 : レシーバの状態を表す文字列を内容にもつ新しく作ったStringクラスの直接のインスタンスを返
す。このインスタンスの具体的な内容は処理系定義とする。
15.3.1.3.18 Kernel#instanceeval
instanceeval(string=nil, &block)
可視性 : public
動作 :
a) レシーバがIntegerクラスのインスタンス,Symbolクラスのインスタンス,nil,true,又はfalse

――――― [JIS X 3017 pdf 220] ―――――

次のページ PDF 221

JIS X 3017:2013の引用国際規格 ISO 一覧

  • ISO/IEC 30170:2012(IDT)

JIS X 3017:2013の国際規格 ICS 分類一覧