この規格ページの目次
120
X 3017 : 2013 (ISO/IEC 30170 : 2012)
15.2.2.4.38 Module#public
public(*symbollist)
可視性 : private
動作 : Cをレシーバとする。
a) Vをpublicとする。
b) ymbollistの長さが0の場合,現在の可視性をNVに設定し,Cを返す。
c) そうではない場合,symbollistのそれぞれの要素Sに対し,次の手順を行う。
1) によって指定される名前をNとする。
2) 名前がNであるメソッド束縛を,Cを起点として,13.3.4で規定されているようにして探す。
3) 束縛が見つかり,その値がundefでない場合,Vをその束縛の値とする。
4) そうではない場合,Sを名前属性にもつNameErrorクラスの直接のインスタンスを例外として発
生させる。
5) 束縛がC内に見つかった場合は,Vの可視性をNVに変更する。
6) そうではない場合,次のメソッド定義を評価することで,Cにインスタンスメソッドを定義する。
次のメソッド定義内の “N” はNであるとする。“args” という名前は説明のためだけのものであり,
仮引数名には任意のものを使用してよい。
def N(*args)
super
end
上記のようにして作られるメソッドの属性は次のように初期化する。
i) クラスモジュールリストは,クラスモジュールリスト の一番上の要素とする。
ii) 定義名は,Vの定義名と同じとする。
iii) 可視性は,NVとする。
d) を返す。
15.2.2.4.39 Module#removeclassvariable
removeclassvariable(symbol)
可視性 : 処理系定義
動作 : Cをレシーバとする。
a) ymbolによって指定される名前をNとする。
b) が《クラス変数識別子》という形式でない場合,symbolを名前属性にもつNameErrorクラスの直接
のインスタンスを例外として発生させる。
c) 名前がNである束縛がCのクラス変数束縛の集合内に存在する場合,Vをその束縛の値とする。
1) その束縛をCのクラス変数束縛の集合から取り除く。
2) を返す。
d) そうではない場合,symbolを名前属性にもつNameErrorクラスの直接のインスタンスを例外として
発生させる。
15.2.2.4.40 Module#removeconst
removeconst(symbol)
可視性 : private
――――― [JIS X 3017 pdf 126] ―――――
121
X 3017 : 2013 (ISO/IEC 30170 : 2012)
動作 : Cをレシーバとする。
a) ymbolによって指定される名前をNとする。
b) が《定数識別子》という形式でない場合,symbolを名前属性にもつNameErrorクラスの直接のイン
スタンスを例外として発生させる。
c) 名前がNである束縛がCの定数束縛の集合内に存在する場合,Vをその束縛の値とする。
1) その束縛をCの定数束縛の集合から取り除く。
2) を返す。
d) そうではない場合,symbolを名前属性にもつNameErrorクラスの直接のインスタンスを例外として
発生させる。
15.2.2.4.41 Module#removemethod
removemethod(*symbollist)
可視性 : private
動作 : Cをレシーバとする。
a) ymbollistのそれぞれの要素Sに対し,リスト内と同順で,次の手順を行う。
1) によって指定される名前をNとする。
2) 名前がNである束縛がCのインスタンスメソッド束縛の集合内に存在し,かつ,その束縛の値が
undefでない場合,その束縛を取り除く。
3) そうではない場合,Sを名前属性にもつNameErrorクラスの直接のインスタンスを例外として発
生させる。この場合,symbollistの残りの要素は処理しない。
b) を返す。
15.2.2.4.42 Module#undefmethod
undefmethod(*symbollist)
可視性 : private
動作 : Cをレシーバとする。
a) ymbollistのそれぞれの要素Sに対し,リスト内と同順で,次の手順を行う。
1) によって指定される名前をNとする。
2) 13.3.7の手順a) 3)及び手順a) 4)を行う。ここで,13.3.7のC及びNはそれぞれ,上記のC及びN
とする。
b) を返す。
15.2.3 Class
15.2.3.1 概要
全てのクラスは,Classクラスのインスタンスとする。したがって,Classクラスで定義された動作は
全てのクラスに共通となる。
Classクラスのインスタンスメソッドappendfeatures及びextendobjectの定義は削除されて
いなければならない。これは,“appendfeatures” 及び “extendobject” という名前のSymbolク
ラスのインスタンスを実引数として,Classクラスに対しundefmethodメソッド(15.2.2.4.42参照)
を呼び出すことによって行う。
注記 インスタンスメソッドappendfeatures及びextendobjectは,モジュールのためのメ
ソッドである。したがって,インスタンスがモジュールではなくクラスを表すClassクラスで
――――― [JIS X 3017 pdf 127] ―――――
122
X 3017 : 2013 (ISO/IEC 30170 : 2012)
は,これらのメソッドの定義が削除されている。
15.2.3.2 直接のスーパークラス
Moduleクラス
15.2.3.3 インスタンスメソッド
15.2.3.3.1 Class#initialize
initialize(superclass=Object, &block)
可視性 : private
動作 :
a) レシーバが直接のスーパークラスをもつか,クラス継承木の根の場合,TypeErrorクラスの直接の
インスタンスを例外として発生させる。
b) uperclassがClassクラスのインスタンスでない場合,TypeErrorクラスの直接のインスタンスを
例外として発生させる。
c) uperclassが特異クラス又はClassクラスの場合,このメソッドの動作は未規定とする。
d) レシーバの直接のスーパークラスをsuperclassとする。
e) 特異クラスを作り,レシーバと関連付ける。この特異クラスは,superclassの特異クラスをスーパーク
ラスの一つとしてもたなければならない。
f) lockが与えられている場合,Moduleクラスのclassevalメソッドの手順b)を実行する(15.2.2.4.15
参照)。ここで,15.2.2.4.15のblockはこのメソッドに渡されたblockとする。
g) 処理系定義の値を返す。
15.2.3.3.2 Class#initializecopy
initializecopy(original)
可視性 : private
動作 :
a) レシーバの直接のスーパークラスが既に設定されているか,レシーバがクラス継承木の根の場合,
TypeErrorクラスの直接のインスタンスを例外として発生させる。
b) レシーバが特異クラスの場合,TypeErrorクラスの直接のインスタンスを例外として発生させる。
c) レシーバに対し,Moduleクラスに定義されているインスタンスメソッドinitializecopyを,
originalを実引数として呼び出す。
d) 処理系定義の値を返す。
15.2.3.3.3 Class#new
new(*args, &block)
可視性 : public
動作 :
a) レシーバが特異クラスの場合,TypeErrorクラスの直接のインスタンスを例外として発生させる。
b) インスタンス変数の束縛をもたないレシーバの直接のインスタンスを作り,Oとする。
c) nitializeメソッドをOに対しargsの全ての要素を実引数とし,blockを《ブロック》として呼び出
す。
d) を返す。
15.2.3.3.4 Class#superclass
――――― [JIS X 3017 pdf 128] ―――――
123
X 3017 : 2013 (ISO/IEC 30170 : 2012)
superclass
可視性 : public
動作 : Cをレシーバとする。
a) が特異クラスの場合,処理系定義の値を返す。
b) が直接のスーパークラスをもたない場合,nilを返す。
c) が直接のスーパークラスをもつ場合,それを返す。
15.2.4 NilClass
15.2.4.1 概要
NilClassクラスは,nilを唯一のインスタンスとしてもつ(6.6参照)。
NilClassクラスのインスタンスは,NilClassクラスのnewメソッドによって作られてはならない。
したがって,NilClassクラスの特異クラスに対し,undefmethodメソッド(15.2.2.4.42参照)を,名
前が “new” であるSymbolクラスの直接のインスタンスを実引数として呼び出すことによって,
NilClassクラスの特異メソッドnewの定義は削除されていなければならない。
15.2.4.2 直接のスーパークラス
Objectクラス
15.2.4.3 インスタンスメソッド
15.2.4.3.1 NilClass#&
&(other)
可視性 : public
動作 : falseを返す。
15.2.4.3.2 NilClass#|
|(other)
可視性 : public
動作 :
a) therが偽の場合,falseを返す。
b) そうではない場合,trueを返す。
15.2.4.3.3 NilClass#
^(other)
可視性 : public
動作 :
a) therが偽の場合,falseを返す。
b) そうではない場合,trueを返す。
15.2.4.3.4 NilClass#nil・
nil・
可視性 : public
動作 : trueを返す。
15.2.4.3.5 NilClass#tos
tos
可視性 : public
――――― [JIS X 3017 pdf 129] ―――――
124
X 3017 : 2013 (ISO/IEC 30170 : 2012)
動作 : Stringクラスの空の直接のインスタンスを作って返す。
15.2.5 TrueClass
15.2.5.1 概要
TrueClassクラスは,trueを唯一のインスタンスとしてもつ(6.6参照)。
TrueClassクラスのインスタンスは,TrueClassクラスのnewメソッドによって作られてはならな
い。したがって,TrueClassクラスの特異クラスに対し,undefmethodメソッド(15.2.2.4.42参照)
を,名前が “new” であるSymbolクラスの直接のインスタンスを実引数として呼び出すことによって,
TrueClassクラスの特異メソッドnewの定義は削除されていなければならない。
15.2.5.2 直接のスーパークラス
Objectクラス
15.2.5.3 インスタンスメソッド
15.2.5.3.1 TrueClass#&
&(other)
可視性 : public
動作 :
a) therが偽の場合,falseを返す。
b) そうではない場合,trueを返す。
15.2.5.3.2 TrueClass#|
|(other)
可視性 : public
動作 : trueを返す。
15.2.5.3.3 TrueClass#
^(other)
可視性 : public
動作 :
a) therが偽の場合,trueを返す。
b) そうではない場合,falseを返す。
15.2.5.3.4 TrueClass#tos
tos
可視性 : public
動作 : 内容が “true” であるようなStringクラスの直接のインスタンスを作って返す。
15.2.6 FalseClass
15.2.6.1 概要
FalseClassクラスは,falseを唯一のインスタンスとしてもつ(6.6参照)。
FalseClassクラスのインスタンスは,FalseClassクラスのnewメソッドによって作られてはなら
ない。したがって,FalseClassクラスの特異クラスに対し,undefmethodメソッド(15.2.2.4.42参照)
を,名前が “new” であるSymbolクラスの直接のインスタンスを実引数として呼び出すことによって,
FalseClassクラスの特異メソッドnewの定義は削除されていなければならない。
15.2.6.2 直接のスーパークラス
――――― [JIS X 3017 pdf 130] ―――――
次のページ PDF 131
JIS X 3017:2013の引用国際規格 ISO 一覧
- ISO/IEC 30170:2012(IDT)
JIS X 3017:2013の国際規格 ICS 分類一覧
- 35 : 情報技術.事務機械 > 35.060 : 情報技術に使用される言語