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

                                                                                            125
X 3017 : 2013 (ISO/IEC 30170 : 2012)
Objectクラス
15.2.6.3 インスタンスメソッド
15.2.6.3.1 FalseClass#&
&(other)
可視性 : public
動作 : falseを返す。
15.2.6.3.2 FalseClass#|
|(other)
可視性 : public
動作 :
a) therが偽の場合,falseを返す。
b) そうではない場合,trueを返す。
15.2.6.3.3 FalseClass#
^(other)
可視性 : public
動作 :
a) therが偽の場合,falseを返す。
b) そうではない場合,trueを返す。
15.2.6.3.4 FalseClass#tos
tos
可視性 : public
動作 : 内容が “false” であるようなStringクラスの直接のインスタンスを作って返す。

15.2.7 Numeric

15.2.7.1 概要
Numericクラスのインスタンスは数値を表す。Numericクラスは,数値を表す,他の全ての組込みク
ラスのスーパークラスである。
“NumericクラスのインスタンスNの値”という表現は,Nが表現する数値のことを表す。
15.2.7.2 直接のスーパークラス
Objectクラス
15.2.7.3 インクルードモジュール
Numericクラスは,次のモジュールをインクルードする。
− Comparable
15.2.7.4 インスタンスメソッド
15.2.7.4.1 Numeric#+@
+@
可視性 : public
動作 : レシーバを返す。
15.2.7.4.2 Numeric#−@
-@

――――― [JIS X 3017 pdf 131] ―――――

126
X 3017 : 2013 (ISO/IEC 30170 : 2012)
可視性 : public
動作 :
a) レシーバに対し,値が0であるIntegerクラスのインスタンスを実引数としてcoerceメソッドを
呼び出す。Vを呼出し結果の値とする。
1) が要素を二つ含むArrayクラスのインスタンスの場合,F及びSをそれぞれVの最初及び最後の
要素とする。
i) Fに対し,Sを実引数として “-” メソッドを呼び出す。
ii) 呼出し結果の値を返す。
2) そうではない場合,TypeErrorクラスの直接のインスタンスを例外として発生させる。
15.2.7.4.3 Numeric#abs
abs
可視性 : public
動作 :
a) レシーバに対し,値が0のIntegerクラスのインスタンスを実引数として “<” メソッドを呼び出す。
b) 呼出し結果の値が真の場合,レシーバに対し “-@” メソッドを呼び出し,その結果の値を返す。
c) そうではない場合,レシーバを返す。
15.2.7.4.4 Numeric#coerce
coerce(other)
可視性 : public
動作 :
a) レシーバ及びotherのクラスが同一の場合,X及びYをそれぞれother及びレシーバとする。
b) そうではない場合,X及びYをそれぞれ,other及びレシーバを次のようにしてFloatクラスのイン
スタンスに変換したものとする。
1) をother又はレシーバとする。
2) がFloatクラスのインスタンスの場合,FをOとする。
3) そうではない場合 :
i) Oに対し,名前が “tof” であるSymbolクラスの直接のインスタンスを実引数として
respondto・メソッドを呼び出した結果が偽の場合,TypeErrorクラスの直接のインスタンス
を例外として発生させる。
ii) に対しtofメソッドを実引数なしで呼び出し,Fをその結果の値とする。
iii) がFloatクラスのインスタンスでない場合,TypeErrorクラスの直接のインスタンスを例外
として発生させる。
4) の値がNaNの場合,このメソッドの動作は未規定とする。
5) の変換結果はFである。
c) 要素を二つ含み,最初の要素がX,最後の要素がYであるArrayクラスの直接のインスタンスを作る。
d) 作ったArrayクラスのインスタンスを返す。

15.2.8 Integer

15.2.8.1 概要
Integerクラスのインスタンスは整数を表す。その整数の範囲は無制限とする。ただし,実際にどのよ

――――― [JIS X 3017 pdf 132] ―――――

                                                                                            127
X 3017 : 2013 (ISO/IEC 30170 : 2012)
うな値が計算可能であるかは,リソースの制限次第であり,処理系定義とする。また,実際にリソースの
制限を超えた場合の動作も処理系定義とする。
Integerクラスのインスタンスは,Integerクラスのnewメソッドによって作られてはならない。し
たがって,Integerクラスの特異クラスに対し,undefmethodメソッド(15.2.2.4.42参照)を,名前
が “new” であるSymbolクラスの直接のインスタンスを実引数として呼び出すことによって,Integer
クラスの特異メソッドnewの定義は削除されていなければならない。
Integerクラスのサブクラス群を組込みクラスとして定義してもよい。この場合,次の条件に従わなけ
ればならない。
− Integerクラスは,その直接のインスタンスをもってはならない。Integerクラスの直接のインス
タンスの代わりに,Integerクラスのサブクラスの直接のインスタンスを作成しなければならない。
− Integerクラスのインスタンスメソッドは,Integerクラス自身に定義しなくてもよい。ただし,
その場合,Integerクラスの全てのサブクラスにそれらのインスタンスメソッドが定義されていなけ
ればならない。
− Integerクラスのそれぞれのサブクラスについては,そのインスタンスの値の範囲に制限があっても
よい。
15.2.8.2 直接のスーパークラス
Numericクラス
15.2.8.3 インスタンスメソッド
15.2.8.3.1 Integer#<=>
<=>(other)
可視性 : public
動作 :
a) therがIntegerクラスのインスタンスの場合,次の手順を行う。
1) レシーバの値がotherの値より大きい場合,値が1であるIntegerクラスのインスタンスを返す。
2) レシーバの値とotherの値とが等しい場合,値が0であるIntegerクラスのインスタンスを返す。
3) レシーバの値がotherの値より小さい場合,値が−1であるIntegerクラスのインスタンスを返す。
b) そうではない場合,otherに対しレシーバを実引数としてcoerceメソッドを呼び出す。Vを呼出し結
果の値とする。
1) が要素を二つ含むArrayクラスのインスタンスの場合,F及びSをそれぞれVの最初及び最後の
要素とする。
i) Fに対し,Sを実引数として “<=>” メソッドを呼び出す。
ii) 呼出し結果の値がIntegerクラスのインスタンスでない場合,このメソッドの動作は未規定と
する。
iii) 呼出し結果の値がIntegerクラスのインスタンスである場合,呼出し結果の値を返す。
2) そうではない場合,nilを返す。
15.2.8.3.2 Integer#==
==(other)
可視性 : public
動作 :

――――― [JIS X 3017 pdf 133] ―――――

128
X 3017 : 2013 (ISO/IEC 30170 : 2012)
a) therがIntegerクラスのインスタンスの場合,次の手順を行う。
1) レシーバの値とotherの値とが等しい場合,trueを返す。
2) そうではない場合,falseを返す。
b) そうではない場合,otherに対しレシーバを実引数として “==” メソッドを呼び出す。呼出し結果の値
を返す。
15.2.8.3.3 Integer#+
+(other)
可視性 : public
動作 :
a) therがIntegerクラスのインスタンスの場合,レシーバの値とotherの値との和を値にもつInteger
クラスのインスタンスを返す。
b) therがFloatクラスのインスタンスの場合,Rを浮動小数点数としてのレシーバの値とする。
Rとotherの値との和を値にもつFloatクラスの直接のインスタンスを返す。
c) そうではない場合,otherに対しレシーバを実引数としてcoerceメソッドを呼び出す。Vを呼出し結
果の値とする。
1) が要素を二つ含むArrayクラスのインスタンスの場合,F及びSをそれぞれVの最初及び最後の
要素とする。
i) Fに対し,Sを実引数として “+” メソッドを呼び出す。
ii) 呼出し結果の値を返す。
2) そうではない場合,TypeErrorクラスの直接のインスタンスを例外として発生させる。
15.2.8.3.4 Integer#−
−(other)
可視性 : public
動作 :
a) therがIntegerクラスのインスタンスの場合,レシーバの値からotherの値を引いたものを値にも
つIntegerクラスのインスタンスを返す。
b) therがFloatクラスのインスタンスの場合,Rを浮動小数点数としてのレシーバの値とする。Rか
らotherの値を引いたものを値にもつFloatクラスの直接のインスタンスを返す。
c) そうではない場合,otherに対しレシーバを実引数としてcoerceメソッドを呼び出す。Vを呼出し結
果の値とする。
1) が要素を二つ含むArrayクラスのインスタンスの場合,F及びSをそれぞれVの最初及び最後の
要素とする。
i) Fに対し,Sを実引数として “-” メソッドを呼び出す。
ii) 呼出し結果の値を返す。
2) そうではない場合,TypeErrorクラスの直接のインスタンスを例外として発生させる。
15.2.8.3.5 Integer#*
*(other)
可視性 : public
動作 :

――――― [JIS X 3017 pdf 134] ―――――

                                                                                            129
X 3017 : 2013 (ISO/IEC 30170 : 2012)
a) therがIntegerクラスのインスタンスの場合,レシーバの値とotherの値との積を値にもつInteger
クラスのインスタンスを返す。
b) therがFloatクラスのインスタンスの場合,Rを浮動小数点数としてのレシーバの値とする。
Rとotherの値との積を値にもつFloatクラスの直接のインスタンスを返す。
c) そうではない場合,otherに対しレシーバを実引数としてcoerceメソッドを呼び出す。Vを呼出し結
果の値とする。
1) が要素を二つ含むArrayクラスのインスタンスの場合,F及びSをそれぞれVの最初及び最後の
要素とする。
i) Fに対し,Sを実引数として “*” メソッドを呼び出す。
ii) 呼出し結果の値を返す。
2) そうではない場合,TypeErrorクラスの直接のインスタンスを例外として発生させる。
15.2.8.3.6 Integer#/
/(other)
可視性 : public
動作 :
a) therがIntegerクラスのインスタンスの場合,次の手順を行う。
1) therの値が0の場合,ZeroDivisionErrorクラスの直接のインスタンスを例外として発生させ
る。
2) そうではない場合,レシーバの値をotherの値で除したものをnとし,n以下の最大の整数を値にも
つIntegerクラスのインスタンスを返す。
注記 レシーバが負の値をもつ場合でも,この動作は同じである。例えば,-5/2は-3を返す。
b) そうではない場合,otherに対しレシーバを実引数としてcoerceメソッドを呼び出す。Vを呼出し結
果の値とする。
1) が要素を二つ含むArrayクラスのインスタンスの場合,F及びSをそれぞれVの最初及び最後の
要素とする。
i) Fに対し,Sを実引数として “/” メソッドを呼び出す。
ii) 呼出し結果の値を返す。
2) そうではない場合,TypeErrorクラスの直接のインスタンスを例外として発生させる。
15.2.8.3.7 Integer#%
%(other)
可視性 : public
動作 :
a) therがIntegerクラスのインスタンスの場合,次の手順を行う。
1) therの値が0の場合,ZeroDivisionErrorクラスの直接のインスタンスを例外として発生させ
る。
2) そうではない場合,x及びyをそれぞれレシーバの値及びotherの値とする。
i) xをyで除した値以下の最大の整数をtとする。
ii) −t×yをmとする。
iii) 値がmであるIntegerクラスのインスタンスを返す。

――――― [JIS X 3017 pdf 135] ―――――

次のページ PDF 136

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

  • ISO/IEC 30170:2012(IDT)

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