diff options
Diffstat (limited to 'spec')
-rw-r--r-- | spec | 135 |
1 files changed, 100 insertions, 35 deletions
@@ -66,13 +66,14 @@ Rubyのオブジェクト指向機能について学べば,より強力なこともできるように 予約語は以下の通りである - break end module self while - case ensure nil super yield - class fail protect then __END__ - continue for redo undef __FILE__ - def if resque unless __LINE__ - else in retry until - elsif include return when + alias elsif module self yield + and end nil super __END__ + break ensure or then __FILE__ + case fail protect undef __LINE__ + class for redo unless + continue if resque until + def in retry when + else include return while 予約語はクラス名,メソッド名,変数名などに用いることはできない. @@ -414,10 +415,9 @@ module文を用いる.代入式は演算子形式をとっているが,メソッドではないの 式1 op= 式2 # 式1は代入可能でなければならない. -この形式は内部的に「式1 = 式1 op 式2」と展開され,実行される.そのため -式1は2回評価されるので,副作用がある場合は予想しない結果を呼ぶ可能性が -ある.自己代入形式はプログラマのタイプ数を減らす目的のためだけに存在す -る形式である.opとして使える演算子は +この形式は内部的に「式1 = 式1 op 式2」と同様に評価される.ただし,式1 +は1回しか評価されないので,式1に副作用がある場合は,「式1 = 式1 op 式2」 +とは動作が異なる結果となる.opとして使える演算子は +, -, *, /, %, **, &, |, ^, <<, >> @@ -561,7 +561,7 @@ if,unless,while,untilの条件判断部の式,および特殊演算子`&&', `||', イテレータとは制御構造(特にループ)の抽象化のために用いられるメソッドの 一種である.イテレータの呼び出しは以下の構文で行なわれる. - 式 '{' 変数... '|' 文 '}' + 式 '{' 変数... '|' 文... '}' 「文」をブロックとして設定し,「式」のメソッドをイテレータとして評価す る.「式」のトップレベルのメソッドだけがイテレータとして呼び出され, @@ -584,7 +584,7 @@ Enumerableモジュールのgrepメソッドのようにイテレータとして呼ばれた時と 式の各要素に対し文を実行する.これは以下の式と等価である. - 式 '{' 変数 '|' 文 '}' + (式).each '{' 変数.. '|' 文 '}' よって式の値のオブジェクトがメソッドeachを持たない場合,forを実行する と例外が発生する. @@ -825,7 +825,7 @@ yield文 以下の形式でメソッドに別名をつけることができる. - def メソッド名1 メソッド名2 + alias メソッド名1 メソッド名2 別名を付けられたメソッドは,その時点でのメソッド定義を引き継ぎ,元のメ ソッドが再定義されても,古いメソッドが呼び出されたのと全く同じ働きをす @@ -865,6 +865,13 @@ Rubyには厳密な意味では関数はないがKernelクラスの関数メソッドは(全ての exit()とは違って,例外処理などは一切行なわない.fork()の後,子 プロセスを終了させる時などに用いる. + do() + + ブロックを1度だけ実行するイテレータ.ブロックをまとめるためだ + けに存在する.使い方の例: + + do { foobar() } while (baz()) + eof() コマンドラインからの入力がEOFに到達している場合,真を返す. @@ -1263,8 +1270,8 @@ Methods: assoc(key) - 連想リスト(2要素の配列を要素とする配列)を検索し,第1要素がkey - と等しい("=="で比較する)配列を返す. + 連想リスト(CONSペアを要素とする配列)を検索し,第1要素がkeyと等 + しい("=="で比較する)配列を返す. clear @@ -1497,6 +1504,63 @@ Methods: selfがminとmaxの範囲内にある時真を返す. +*** Cons(クラス) + +データの組(ペア)を表現するクラス.通常,生成は`::'演算子を用いて行なわ +れる.LispのCONSペアと同様にListを構成する形で用いられることもある. +Consクラスのメソッド`[]',`[]=',`each'はCONSペアからなるリストに対して +も動作するように設計されている. + +例: + a=1::2::3 + a[0] # a[0] => 1 + a[2] = 5 # a => 1::5::3 + for i in a + print i + end # prints `153' + +SuperClass: Object + +Included Modules: Enumerable + +Methods: + + self [nth] + + CONSペアからなるリストのnth番目の要素を返す.対応する要素が存 + 在しない場合はnilを返す. + + self [nth]= val + + CONSペアからなるリストのnth番目の要素を変更する.リストの長さ + がnthで指定した長さよりも短くて,対応する要素が存在しない場合 + は例外が発生する.nthがリストの長さと等しい時にはリストの末尾 + に要素を追加する. + + car + + CONSペアのデータのCAR部を返す. + + car=(val) + + CONSペアのCAR部のデータを変更する. + + cdr + + CONSペアのデータのCDR部を返す. + + cdr=(val) + + CONSペアのCDR部のデータを変更する. + + copy + + CONSペアからなるリストの複製を返す(shallow copy). + + each + + CONSペアからなるリストの各要素を与えるイテレータ. + *** DBM(クラス) NDBMファイルをアクセスするクラス.キー,データともに文字列でなければな @@ -1533,22 +1597,22 @@ Methods: delete_if - 要素を削除するイテレータ.[key, value]という配列を与えて,ブロッ + 要素を削除するイテレータ.key::valueというペアを与えて,ブロッ クを評価した値が真の時,該当する項目を削除する. each each_pair - [key, value]なる配列を与えるイテレータ. - - each_value - - 全てのvalueに対して繰り返すイテレータ. + key::valueなるペアを与えるイテレータ. each_key 全てのkeyに対して繰り返すイテレータ. + each_value + + 全てのvalueに対して繰り返すイテレータ. + has_key(key) includes(key) @@ -1625,21 +1689,21 @@ Methods: delete_if - 要素を削除するイテレータ.[key, value]という配列を与えて,ブロッ + 要素を削除するイテレータ.key::valueというペアを与えて,ブロッ クを評価した値が真の時,該当する項目を削除する. each - each_value + each_pair - 全てのvalueに対して繰り返すイテレータ. + key::valueなるペアを与えるイテレータ. each_key 全てのkeyに対して繰り返すイテレータ. - each_pair + each_value - [key, value]なる配列を与えるイテレータ. + 全てのvalueに対して繰り返すイテレータ. has_key(key) includes(key) @@ -1780,6 +1844,10 @@ Methods: 番最初の要素が0になる.要素が存在しない時にはnilを返す.順序の ないクラスに対してはあまり意味がない. + length + + 要素の数を返す. + min 最小の要素を返す.全ての要素がお互いに`<=>'メソッドで比較でき @@ -2286,7 +2354,7 @@ Methods: each - ワイルドカードにマッチするファイル名を返すイテレータ. + ワイルドカードにマッチするファイル名を与えるイテレータ. Single Methods: @@ -2469,10 +2537,8 @@ Methods: self :: other - selfとotherを要素とする長さ2の配列を返す.配列を生成するという - 意味で [self, other]と同じ働きをするが,こちらの方がわずかに効 - 率が良い.この演算子は右結合であるので,a::b::c は (a::(b::c)) - と解釈される. + selfとotherを要素とするCONSペアを返す.この演算子は右結合であ + るので,a::b::c は (a::(b::c)) と解釈される. is_nil @@ -2645,7 +2711,7 @@ Methods: divmod(other) - 商と剰余の2要素の配列を返す. + 商と剰余のペアを返す. next @@ -2870,8 +2936,7 @@ Single Methods: socketpair(domain, type, protocol) - ソケットのペアを生成し,2要素の配列として返す.引数の指定は - openと同じである. + ソケットのペアを返す.引数の指定は openと同じである. *** Regexp(クラス) |