diff options
author | Yukihiro Matsumoto <matz@ruby-lang.org> | 1995-12-21 00:56:57 +0900 |
---|---|---|
committer | Takashi Kokubun <takashikkbn@gmail.com> | 2019-08-17 22:09:32 +0900 |
commit | fca49a8a69a0f6bb4feae74c6cd0e93d7fac8b36 (patch) | |
tree | 590a6d2ffcfa31212c1595e34a01d9cda56ba308 /ruby.texi | |
parent | 8bf1c909dc31fd4bcdc1488cda9fe89a62bc2830 (diff) |
version 0.95v0_95
https://cache.ruby-lang.org/pub/ruby/1.0/ruby-0.95.tar.gz
Thu Dec 21 00:56:57 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* version 0.95 - fj.sourcesに
* eval.c (rb_eval): rescueのロジックをrb_rescue()に一元化.
Wed Dec 20 19:30:58 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* Makefile.in: 不要なコンパイルの回避(より完全に).
* class.c (singleton_class_new): `single'->`singleton'
Tue Dec 19 07:14:33 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* io.c (closed?): IOがcloseされているかどうかを知る述語.
* parse.y (primary): 特異メソッドの引数のlex_stateが不適切.
* lib/tk.rb: tcl->rubyの変換関数の用意.
* ext/extmk.rb.in (install): installの2重コンパイルの回避.
* array.c (range_beg_len): range指定の不適切なエラーを訂正.
* string.c (str_aref): range指定のバグを削除.
* lib/tk.rb (tk_split_list): Tclのリストに対応.
Mon Dec 18 09:58:12 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* version 0.94
* dln.c (dln_load): HP対応(未確認)
* eval.c (Init_Proc): BlockをProcに改名.
Sat Dec 16 13:46:14 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* eval.c (rb_eval): retryでイテレータの再実行ができるように.
Fri Dec 15 17:14:30 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* eval.c: proc:lambdaの親しみやすい別名
Thu Dec 14 17:21:55 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* eval.c (dyna_var_asgn): イテレータブロック内で最初に初期化された
ローカル変数の有効範囲をそのブロック内に限定.これでlambdaと呼べ
ないことはない.
Wed Dec 13 02:30:58 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* gc.c: autoloadのマークミス.
* lib/tk.rb: wishからの複数行の戻り値に対応
* lib/tkcomposite.rb: 複合widget
* variable.c (rb_class2path): ICLASSに対応してなかった.
* eval.c (ruby_run): exit(0)のバグ
Sat Dec 9 01:21:24 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* ext/marshal/marshal.c (dumps|load): 文字列に対する入出力を可能に
した(ただし実はファイル経由なのだ).
Fri Dec 8 18:29:11 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* ext/marshal/marshal.c: シンボルを一度だけ初期化する.
Thu Dec 7 07:58:50 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* parse.y (yylex): 第1引数の正規表現の認識にエラーがあった.同時に
状態数を減らした.
* string.c (str_sub): 置換でスキップ幅が大きすぎた.
Wed Dec 6 15:14:23 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* string.c (str_sub_method): sub/gsub(!なし)は置換が行なわれなかっ
た時,置換前の文字列を返す.
Tue Dec 5 00:55:15 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* parse.y (yylex): 括弧を省略した時の引数展開の`*'に対応.
* eval.c (ruby_run): EXITハンドラ内での例外に対応.
* bignum.c (big_cmp): BignumとFixnumの比較で落ちる.
Mon Dec 4 14:21:18 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* parse.y (call_op): コンパイル時の定数式の展開をやめた.労多くし
て益少ないと判断したので.
Thu Nov 30 01:35:15 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* lib/tk.rb: {Radio,Check}Buttonのvariableの実装.
* eval.c (rb_yield_0): Block.callがネストした時のバグ.
* io.c (f_select): 常に配列3つをふくむ配列を返すように
* lib/tk.rb: fileeventをruby側で実装.
Wed Nov 29 17:53:23 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* variable.c (rb_ivar_get): selfを常に指定するように.
Tue Nov 14 00:07:29 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* lib/tk.rb: Tk4.0対応
Mon Nov 13 16:23:32 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* version 0.93
Thu Nov 9 23:26:01 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* gc.c (gc_mark): モジュールのMixinのマーク忘れ.
* parse.y (f_arglist): メソッド定義の引数を括弧で括らなくても良い
ようにした.
Wed Nov 8 00:17:51 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* eval.c (rb_yield_0): 未初期化のローカル変数があった.
* eval.c (rb_eval): pendig signalのチェックをeval実行後に行うよう
にした.でないとシグナルの発生と検出が遠く離れてしまう事がある.
* parse.y: class文のsuperclass部を定数から式に拡張した.
* lib/tk.rb: Tkのほぼ全ウィンドウクラスに対応.キャンバスとテキス
ト上のオブジェクトが残っている.
Tue Nov 7 08:18:37 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* signal.c (trap): ブロックを指定できるように.
Mon Nov 6 16:44:00 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* eval.c (f_caller): 呼出元の情報を得る.
* ext/tkutil/tkutil.c: wishのstderr出力を監視することで,エラー処
理を行う.
* ext/tkutil/tkutil.c: wishとの通信部をCで記述.
Sat Nov 4 01:12:59 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* sample/ruby-mode.el (ruby-calculate-indent): インデントの計算を
もう少しスマートにした(正規表現のチェック,継続行のチェック).
* eval.c (rb_call): 無限再帰を避けるため,関数のネストレベルの制限
を行なう.
* lib/tk.rb: Tkインターフェース.まだ不完全だが.
* eval.c (rb_yield_0): 空のBlockのバグ.
* sample/ruby-mode.el (ruby-calculate-indent): 行末の演算子による
行継続に対応.
Fri Nov 3 12:56:21 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* eval.c (rb_call): 本体が空の関数の実行にバグ.
* parse.y (var_extend): 文字列の末尾の変数展開のバグ.
* variable.c (rb_gvar_set): traceの評価時にに変数値を与えるように.
* eval.c (f_require): ruby scriptのrequireにbug.
* variable.c (rb_const_get): モジュールのinclude対策.
Thu Oct 19 13:56:06 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* dln.c (dln_load): HP対応でのtypo.
Wed Oct 18 17:39:39 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* version 0.92
* object.c (krn_type): オブジェクトの動的な型を返すメソッド.
Tue Oct 17 00:48:18 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* ruby.c (proc_options): -X オプション.chdirだけを行う.
* re.c (reg_search): 漢字コードを途中で変更できるように.コンパイ
ル時のコードが変更された時にはマッチの直前に正規表現の再コンパイ
ルを行う.定数KCODEから変数$KCODEへ.
* parse.y: ()のなかにcompexprを許す.
* re.c (reg_search): メモリリークを直した.
Fri Oct 13 13:19:19 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* string.c (str_sub): 文字列置換にバグ.
* string.c (str_strip_bang): 文字列の後ろの長さの調整が行われてい
なかった.
* re.c (reg_search): $&, $1...のはローカルに束縛するようになった.
呼び出したメソッドでのマッチは現スコープの$&などの値に影響しない.
マッチの情報をスコープ外で得たいときには$~を使って束縛情報を持ち
出す必要がある.
Thu Oct 12 00:33:33 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* re.c (reg_search): String:split, String:indexでは$&, $1...が変化
しないようにした.
* io.c (rb_str_setter): setterの仕様が変更になっていた.
* variable.c (f_trace_var): 第2引数を省略してイテレータとして呼べ
るように.
Wed Oct 11 11:50:59 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* version 0.91
* variable.c (var_setter): 引数が間違っていた.致命的バグ.
* io.c (pipe_open): $stderrの値が変更されている時にはそちらを
子プロセスのstderrに設定する.
Mon Oct 9 13:06:33 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* object.c (mod_to_s): モジュール内のモジュールは`::'を使った表現
で表示されるように.
* variable.c (rb_gvar_set): 代入によるループが発生しないように,
trace内での代入ではtraceを評価しない.
* struct.c (struct_equal): structのequal判定にクラスの一致を含めた.
Sat Oct 7 00:18:32 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* eval.c (rb_eval): defined?の機能を拡張(yieldのチェック,superの
存在など).
Fri Oct 6 12:06:47 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* version 0.90
* st.c (st_foreach): 要素を削除した時に要素数が変化していなかった.
* hash.c (hash_values): バグ修正.keysを返していた….
* parse.y (call_op): defined? の引数では定数の畳み込みを行わない
(チェックする前にコンパイルエラーになっては困る).
* スコープ生成の一部見直し.
Thu Oct 5 00:29:43 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* 関数とクラスの命名規則を変更した.関数名,変数名の全面書き換え.
* gc.c (looks_pointerp): ヒープチェックの高速化.
* struct.c (Fstruct_aset): 構造体に対する`[]='.
(struct_set): 構造体メンバに対する代入.
Wed Oct 4 09:54:07 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* version 0.89
* eval.c (Frequire): ダイナミックロードのエラーチェックを厳しく.
* struct.c: structの構造を完全に書き換えた.以前は順序付きの
id->valueの連想配列であったが,今度は構造体毎に新しいクラスを生
成するようにした.
* parse.y: `::'の意味をAssocの生成からクラス(モジュール)内の定数ア
クセスへ変更.
* assoc.c: なくす.
Tue Oct 3 13:31:08 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* variable.c (Ftrace_var): trace_var, 大域変数への書き込みhookを設
定する.
* variable.c: global_entryの構成を書き換えた.これでtrace_varを実
装できる.
* file.c (Ffile_stat): "&"で直前のfstatの結果も参照できるように.
Fri Sep 29 14:15:13 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* version 0.88
* dln.c (dln_load): AIXとHPに対応したコードを入れた(動作は未確認).
* ext/extmk.rb.in: 必要に応じて,定数EXTLIBを定義するように.
* dln.c (dln_load): dln独立に書き換える.将来の拡張用.
(load_1): dln_a_outにおいてソースコードでライブラリを明示的にロー
ドする必要がないように変更した.
Thu Sep 28 13:31:37 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* sample/ruby-mode.el: もっとましなhilit19対応(正規表現).
Wed Sep 27 04:12:44 1995 Takahasi Mamoru <taka@soum.co.jp>
* sample/test.rb: echoで-nを使わないように(SysV対策).
* ext/extmk.rb.in: sub -> sub!
Tue Sep 26 19:12:42 1995 Yasuo OHBA <jammy@csg.mes.co.jp>
* dln.c (dln_find_1): `.', `..'から始まるパスに対応した.
Mon Sep 25 12:33:03 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* version 0.87
Sat Sep 23 10:00:18 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* eval.c (Fmod_modfunc): メソッドをprivateにし,同時に特異メソッド
も定義するメソッド.パッケージ的使い方のモジュール用.
Fri Sep 22 11:02:44 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* lib/find.rb: findを提供するライブラリ
* variable.c (rb_define_variable): hookの設定を分離.
(add_hook): 1変数に対して複数のhookを設定できるように.
Thu Sep 21 00:22:11 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* string.c (Fstr_frozen): 文字列が更新不可かどうかをチェックする述
語メソッド.
* hash.c (Fhash_aset): keyが文字列の時,キーの内容が変化しないよう
に,dupしてfreezeする.
Wed Sep 20 16:12:44 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* version 0.86
* ext/extmk.rb.in (have_header): キャッシュにバグ.
* ext/extmk.rb.in (have_library): 引数の順序が変わった.
Thu Sep 14 18:00:59 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* object.c (obj_is_instance_of): is_member_ofから名称変更.
Wed Sep 13 15:44:35 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* string.c (Fstr_tr_bang): 範囲外の文字に対する変換バグ.
Tue Sep 12 14:27:58 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* file.c (Sfile_expand_path): expand_file_name -> expand_pathに名
称変更.
* enum.c (Fenum_member): includes? -> member? に名称変更.
* string.c (Fstr_each_byte): StringはByteArrayであるという基本に戻っ
て,eachの定義をeach_byteに変更した.今までのeachはeach_lineでア
クセスできる.
Mon Sep 11 18:31:17 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* file.c (cache_stat): ファイル名として"&"を指定すると直前の
stat(2)の結果を再利用するように.
Fri Sep 8 14:18:51 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* ruby.texi: `!', `?'に対応してアップデート.
* parse.y: defined -> defined?
* file.c: FileOpの一文字メソッドをなくす.一文字テストはtestメソッ
ドにまかせる.
* parse.y (yylex): 変数名の後ろに`?'も許す.述語メソッドの後ろに
`?'を追加する.
Thu Sep 7 20:01:33 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* string.c: 文字列の中身を更新するメソッドの名前の終りに`!'を付加.
`!'の無いバージョンも用意した.
* parse.y: 変数名の後ろに`!'を許す.
Wed Sep 6 14:12:19 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* version 0.85
* string.c (Fstr_dup): 文字列の複製を作る
(Fstr_freeze): 文字列の更新不可属性を設定できるように.
(Fsub/Fgsub): $_の内容をdupしてから置換を行うように.
* ruby.h (CLONESETUP): flagsの状態もコピー
Tue Sep 5 01:27:50 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* sample/test.rb: 失敗の検出を厳しく.
Fri Aug 25 14:31:02 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* process.c (Ffork): イテレータとしても動作するように.
* version 0.84
* signal.c (sig_beg): ハンドラが設定されている時には再設定しない.
* ext/extmk.rb.in (create_makefile): shared objectのリンクの際に
`-l'オプションを指定するように.
* signal.c (trap): `EXIT'で終了処理を行う設定が出来る.
Wed Aug 16 00:13:22 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* signal.c (sig_beg): デフォルトではbegin節の中でだけSIGINTを捕捉
するように変更.
* io.c (io_ctl): fcntlを持たないシステムにも対応.
* 各ディレクトリに分散していたMANIFESTをまとめた.拡張モジュール毎
には必要.
* string.c (Sstr_new,str_sub,Fstr_crypt): 引数を自動的に文字列に変
換するように.
Sat Aug 12 00:44:02 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* string.c (Fstr_crypt): PD cryptを用意した.
Fri Aug 11 14:37:03 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* assoc.c (Fassoc_clone): assocもcloneできるように.
* io.c: マクロREAD_DATA_PENDINGの定義を変更(Linux対応)
* io.c (io_fptr_finalize): ftprの開放時の処理を指定できるように.
Wed Aug 9 16:52:41 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* eval.c (rb_provided): 複数のfeatureをロードすると無限ループに落
ちるという単純な(しかし凶悪な)ミス.
* ext/extmk.rb.in (install): dlopen対応を行った.今までdlnにしか十
分に対応していなかった.
Tue Aug 8 14:17:06 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* version 0.83
Mon Aug 7 12:47:41 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* parse.y: resque -> rescue.恥ずかしいがtypoを残しておくわけには
いかないよなあ.なんで今まで気がつかなかったのか….
Thu Aug 3 18:18:05 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* missing/nt.c: NT移植用の関数群をまとめた.
* variable.c (rb_const_get): また例外を発生するようにした.defined
がある以上例外を発生させない理由がないので(例外が発生した方がタ
イプミスの検出などの点で有利).
* variable.c (Fautoload): autoloadを実装.今度は使えるか.
Mon Jul 31 15:44:21 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* parse.y (arg_ambiguous): 第1引数のあいまいさを警告(-vオプション
で有効).
* eval.c (rb_eval): `-v'オプションをつけて`def'が呼ばれると不必要
なエラーメッセージが出た.
* parse.y (yylex): メソッドの第1引数の判定をもうちょっと賢くした.
Fri Jul 28 19:04:43 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* parse.y (yylex): `+/-/['の直前に空白が来るかどうかで動作を変更し
た(混乱のもとか?)
Wed Jul 26 09:21:23 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* version 0.82a
* sprintf.c (Fsprintf): `%s'で'\0'を含む文字列に対応.
* pack.c (Fpck_pack): packの要素確保のバグ.
* eval.c (Floop): 無限ループのイテレータ.
* io.c (next_argv): 存在しないファイル名が指定された時のエラー処理
が行われていなかった.
Mon Jul 24 17:37:34 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* version 0.82
* ext/extmk.rb.in (install): 拡張モジュールをstatic linkする場合は
そのモジュールが既にrequireされたのと同じようにfeatureを設定する.
これで拡張モジュールの機能が必要な時には(static linkされているか
どうかにかかわらず)requireすればよくなる.
* eval.c (Frequire): `$"'に格納する文字列をフルパスでなくフィーチャ
名とする.rubyスクリプトをロードした時には`.rb',オブジェクトを
ロードした時には`.o'をフィーチャ名に付加する.lispのrequireと
provideの働きに(少し)近い.
Thu Jul 20 12:50:05 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* Makefile.in (test): make testができるように.
* struct.c (struct_new): typo.
* eval.c (rb_eval): `defined'を追加.メソッド/変数/定数の定義状態
を知る事が出来る.
Wed Jul 19 18:04:01 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* version 0.81
Mon Jul 17 14:53:51 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* variable.c (rb_const_get): 未初期化のCONSTANTの値をnilにした.し
かし,今後また例外に戻す可能性はある.要はoptionalなクラス/モジュー
ルが存在するかチェックしたいだけなんだな.
* st.c (int): grow_factorを固定にした(大嶋さんのマシンに対応).
Fri Jul 14 00:48:40 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* ext/extmk.rb.in: キャッシュのバグを修正.
* parse.y (var_extend): #{$数字}に対応した.
* dln.c (dln_load_1): `Init_FILENAME'だけを有効に.`init_*'は今後
実行しない.
* ext/etc/etc.c : Etcモジュールを拡張モジュールとして分離.実はNT
対応への布石だったりするかもしれない.
Tue Jul 11 17:12:48 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* gcc -Wallで出たwarningを元にソースを変更.
* signal.c (trap): typo.
Fri Jul 7 10:08:51 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* version 0.80
* ruby.texi: texinfo documentを提供.specとruby.1は無くなった.
* signal.c (Ftrap): 割込み禁止中の例外発生に対応.
* eval.c (Flambda): Blockオブジェクトを返す.Block.newと同義.
Thu Jul 6 00:35:03 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* signal.c (Ftrap): SIG_DFLの処理を変更.SIGINTへのデフォルトハン
ドラを用意(例外を発生する).
* file.c (Sfile_expand_fname): パス名を絶対パスに展開するメソッド.
(Sfile_basename): basenameを得るメソッド.拡張子も外せる.
(Sfile_dirname): basenameの反対.
* eval.c (rb_call): argument評価中の例外発生に対応.
* file.c (Ftest): `M', `A', `C'を追加.
Tue Jul 4 12:36:33 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* file.c (Ftest): ファイルテスト用メソッド.
* ruby.c (proc_options): `-r'オプションを追加.
* parse.y (f_args): デフォルト引数を追加.
* eval.c (rb_call): 該当する引数が無い時,rest引数の値をnilに.
* numeric.c (num_equal): 数値以外との比較で例外が発生していた.
FALSEを返すように.
* eval.c (masign): 多重代入のrest部の動作がおかしかった.
Sat Jun 17 01:03:16 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* parse.y (gettable): 未初期化のローカル変数の参照(独立した識別子)
は正式にメソッド呼び出しとした.
* parse.y (read_escape): tokenbufを使わないように修正.それにとも
ない,`\C-x',`\M-x'などのエスケープ表現を復活.これでドキュメン
トと実際の処理系が一致した.
Thu Jun 15 15:42:00 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* re.c (re_regcomp): cacheのチェックを改善.
Mon Jun 12 18:50:51 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* version 0.79
Sat Jun 10 00:25:01 1995 Yukihiro Matsumoto <matz@caelum.co.jp>
* re.c (re_regcomp): cache判定に`$='の値も反映させた.
* sample/test.rb: test suite作成.
Fri Jun 9 15:58:34 1995 Yukihiro Matsumoto <matz@ix-02>
* re.c (re_regcomp): cacheの判定が間違っていた.
Fri Jun 9 00:01:35 1995 Yukihiro Matsumoto (matz@dyna)
* eval.c (rb_yield): block構造体に初期化していないメンバ(iter)があっ
たのでイテレータのネストが正しく動作しなかった.
Thu Jun 8 00:59:03 1995 Yukihiro Matsumoto (matz@dyna)
* re.c (=~): String以外との比較がFALSEを返すように(例外を発生して
いた).
* extmk.rb.in: 判定した値をファイルにキャッシュするようにした.
* assoc.c (to_a): to_aメソッドが再定義されていなかった.
* eval.c (rb_eval): 初期化されていないローカル変数へのアクセスを引
数の無いメソッド呼び出しと解釈する.ただし,(現状では)メソッドが
定義されていない場合,エラーにせず変数未初期化のwaringを出して
nilを返している.「ruby -pe print」などが実行できるという意味で
はありがたいこの仕様は,しかし今後の検討が必要である.-- メソッ
ド呼び出しとするのを止めるか(以前の仕様),いつもメソッド呼び出し
とする(未定義ならばエラー)か,今の仕様で行くか.
* eval.c (rb_eval): 初期化されていないローカル変数へのアクセスで
(evalなどで)初期化された事が分かった時には以後初期化されたローカ
ル変数とみなす.
Wed Jun 7 11:58:12 1995 Yukihiro Matsumoto <matz@ix-02>
* eval.c (rb_fail): 例外処理後も`$!'をクリアしないように.
(rb_fail): `$!'変数に最後に改行を追加しない.
* io.c (Fprint): privateメソッドに変更.引数を取らない時の動作を変
更(`$_'を出力する).
(Fio_print): 出力先指定のprintメソッド.
(Fio_printf): 出力先指定のprintfメソッド.
* parse.y: not演算子の追加.優先順位の低い`!'演算子.
Mon Jun 5 19:00:55 1995 Yukihiro Matsumoto <matz@ix-02>
* version 0.78
Fri Jun 2 17:52:03 1995 Yukihiro Matsumoto <matz@ix-02>
* ruby.c (proc_options): -Iオプションで`$:'への追加される順番を修
正した.
Fri Jun 2 00:36:34 1995 Yukihiro Matsumoto (matz@dyna)
* parse.y: while修飾子の動作を通常のwhileと同じにした.ただし,
begin式へのwhile修飾子だけはdo..while型のループとなる.
Wed May 31 18:36:30 1995 Yukihiro Matsumoto <matz@ix-02>
* version 0.77
Mon May 29 18:39:37 1995 Yukihiro Matsumoto <matz@ix-02>
* ext/extmk.rb.in (install): 拡張モジュールもインストールできるよ
うに.
Fri May 26 14:43:01 1995 Yukihiro Matsumoto <matz@ix-02>
* process.c (Fsystem): 戻り値をサブプロセスの失敗/成功を表す真偽値
にした.終了ステータスは`$?'で得る.
Tue May 23 10:58:11 1995 Yukihiro Matsumoto <matz@ix-02>
* string.c (Fstr_upto): 無限ループに陥らないように.
* parse.y (cond): `||'などの右辺に制御式が書けるように,条件式がか
ならずしも値を持たなくても良いようにした.
* ext/marshal/marshal.c: オブジェクトの読み書きをメソッドの再定義
でコントロールできるように.インスタンスが`_dump_to'というメソッ
ドを定義している時はそちらを使うように.
* ext/extmk.rb.in: static linkも設定できるような仕様にした.
ext/Setupというファイルにディレクトリ名を記述するとそのディレク
トリに存在するモジュールはstatic linkされる(はず).
* eval.c (rb_eval): `..'を文法に組み込み,`..'と`...'の動作をperl
に合わせた.
Sat May 20 01:22:48 1995 Yukihiro Matsumoto (matz@dyna)
* io.c (select): timeout時と割込み時の動作の明確化.
Co-authored-by: Takahasi Mamoru <taka@soum.co.jp>
Co-authored-by: Yasuo OHBA <jammy@csg.mes.co.jp>
Diffstat (limited to 'ruby.texi')
-rw-r--r-- | ruby.texi | 5044 |
1 files changed, 5044 insertions, 0 deletions
diff --git a/ruby.texi b/ruby.texi new file mode 100644 index 0000000000..50ffb63a16 --- /dev/null +++ b/ruby.texi @@ -0,0 +1,5044 @@ +\input texinfo @c -*-texinfo-*- created at: Tue Jun 20 16:58:39 JST 1995 +@setfilename ruby.info +@settitle Ruby Reference Manual + +@titlepage +@title Ruby Reference Manual +@subtitle The Object-Oriented Scripting Language +@author Yukihiro Matsumoto +@author matz@@caelum.co.jp +@end titlepage + +@node Top, Ϥ, (dir), (dir) + +Ruby Reference Manual + +@menu +* Ϥ:: +* ޥɥ饤ץ:: +* rubyʸˡ:: +* Ȥ߹ߴؿ:: +* Ȥ߹ѿ:: +* Ȥ߹ߥ饹ȥ⥸塼:: +* CȤΥե:: +* ռ:: +* ʸˡ:: +* Variables Index:: +* Concept Index:: +* Function Index:: +@end menu + +@node Ϥ, ޥɥ饤ץ, Top, Top +@comment node-name, next, previous, up +@chapter Ϥ + +Ruby, ڤʥ֥Ȼظץߥ¸뤿μεǽ +ĥ֥ȻظץȸǤ롥ܳŪʥ֥Ȼظ +ǤSmalltalk, EiffelC++ʤɤǤ礲˻פ褦ΰǤΥ +֥Ȼظץߥٱ礹뤳ȤŪȤ롥߷פδ +§, ʲ̤Ǥ. + +@itemize @bullet +@item + +ǽ + +ñ㳰ξʤʸˡǡ֥Ȼظץߥȥץȥ +ߥΤɬפʵǽʬ. + +@item + +ĥ + +ɬפ˱ưפ˵ǽĥǤ롥饹ͳɲäǤ뤳Ȥ, +CץΥˤäƥץˤ뵡ǽɲäǤ롥 +˥ץåȥեˤäƤ, ưŪ˥֥ȥɤ뵡 +ǽ. + +@item + + + +θ§ΤŬѤ褦ʰΤͤġ +äơ֥ѥγڤפϸΤʤ,Τ +䤹ˤ뤳ȤϤʤ. +@end itemize + +RubyϡּڡפǤϤ뤬ܳŪʥ֥ȻظǽĤΤǡperl, +tcl, pythonʤɥץȸ˥֥Ȼظǽɲä褦ʽ +Ϥ⼫˥֥ȻظǤ롥˥١쥯㳰 +ǽϤŬʥץߥٱ礹롥 + +RubyϥƥȽطεǽ˭٤(perlƱ餤)OSľ +褦ʽҤǤ롥ޤ, ʥ֥ȻظǤ +, ɬפǤм³ץߥǽǤ. + +RubyshperlΤäƤͤˤȤäƤξQˤǤ¤꽾äΤ, +θ̤ƤͤˤȤäƤϽ(¿ʬ)ưפץޤ +RubyΥ֥ȻظǽˤĤƳؤ٤С궯ϤʤȤǤ褦 +ʤ + +@node ޥɥ饤ץ, rubyʸˡ, Ϥ, Top +@comment node-name, next, previous, up +@chapter ޥɥ饤ץ + +rubyץϰʲΰդ. + +@table @samp + +@item -0 + +ϥ쥳ɥѥ졼(@code{$/})8ʿǻꤹ롥 + +ꤷʤϥ̥륭饯ѥ졼ˤʤ롣θ¾Υ +åäƤ褤 + +-00, ѥ饰ե⡼, -0777(Υɤʸ¸ߤʤΤ) +ե٤ɤ߹⡼ɤǤ. + +@item -a +@cindex{ȥץåȥ⡼} + +@code{-n}@code{-p}ȤȤѤ, ȥץåȥ⡼ɤONˤ롥 +ȥץåȥ⡼ɤǤϳƥ롼פƬ, + +@example +$F = $_.split +@end example + +¹Ԥ롥@code{-n}@code{-p}ץƱ˻ꤵʤ¤, +Υץϰ̣ʤ. + +@item -c + +ץȤؤΥѥΤߤԤ, ¹Ԥʤѥ뽪 +λ, ʸˡ顼̵, @samp{"Syntax OK"}ȽϤ. + +@item -K c + +rubyνɤꤹ롥 rubyϻꤵ줿ʸ @code{E} +@code{e}ξʸ䥢եƤΥɤEUC +Ȳꤹ롥Ʊͤ@code{S}ޤ@code{s}ξSJISȤƽ롥 +@code{N}ϴʤǥեȤEUC. + +@example +ruby -CE -e 'print "ƥ"' +ruby -Cs -e 'print "ƥ"' +ruby -Cn -e 'print "ƥ"' +@end example + +ΥץϾʸɤμưȽ̵ǽɲä줿ˤѹ +. + +@item -d +@itemx --debug + +ǥХå⡼ɤonˤ롥Υե饰åȤȥƥѿ +@code{$DEBUG}åȤ. + +@item -e @var{script} + +ޥɥ饤饹ץȤꤹ롥-eץդˤϰ +饹ץȥե̾ʤ. + +@item -F @var{ʸ} + +ϥեɥѥ졼(@code{$;})ͤʸ˥åȤ롥awkƱ̾ +ΥץƱƯ. + +@item -i @var{extension} + +ǻꤵ줿եƤ֤(in-place edit)Ȥꤹ +롥ΥեϳĥҤĤ¸. + +: + +@example +% echo matz > /tmp/junk +% cat /tmp/junk +matz +% ruby -p -i.bak -e '$_.upcase' /tmp/junk +% cat /tmp/junk +MATZ +% cat /tmp/junk.bak +matz +@end example + +ĥҤʤСХååפϤ줺ѹ줿եĤ롥 + +@item -I @var{directory} + +եɤѥ(ɲ)롥ꤵ줿ǥ쥯ȥruby +ѿ@code{$:}ɲä. + +@item -l + +@code{$\}@code{$/}Ʊͤꤷ, @code{print}Ǥνϻ˲Ԥ +ä롥ޤ, @samp{-n}ޤ@samp{-p}ȤȤѤ, Ϥ줿 +ƹԤκǸʸ@code{chop!}. + +@item -n + +Υե饰åȤȥץΤ + +@example +while gets + @dots{} +end +@end example + +ǰϤޤƤ褦ư. +@item -p + +@code{-n}ե饰Ʊ, ƥ롼פκǸѿ@code{$_}ͤϤ. + +: + +@example +% echo matz | ruby -p -e '$_.tr! "a-z", "A-Z"' +MATZ +@end example + +@item -r ե̾ + +ץȼ¹˥ե̾ǻꤵե@code{require}롥 +@samp{-n}ץ@samp{-p}ץȤȤ˻ȤäͭǤ롥 + +@xref{Ȥ߹ߴؿ} + +@item -s + +ץ̾³, @code{-}ǻϤޤᤷ, Ʊ̾ѿ +ꤹ롥@code{--}ʤʹߤϲԤʤʤ +@code{$ARGV}. + +: +@example +#! /usr/local/bin/ruby -s +# -xyzץͿ"true"ɽ. +print "true\n" if $xyz +@end example + +@item -S + +ץ̾@code{/}ǻϤޤäƤʤ, Ķѿ@code{PATH}ͤ +ȤäƥץȤõ ϡ@samp{#!} ݡȤƤʤޥ +ǡ@samp{#!} ˤ¹Ԥߥ졼Ȥ뤿ˡʲΤ褦ˤƻȤ +ȤǤ: + +: +@example +#! /usr/local/bin/ruby +# This line makes the next one a comment in ruby \ + exec /usr/local/bin/ruby -S $0 $* +@end example + +ƥϺǽιԤ̵뤷ץȤ@code{/bin/sh}Ϥ +@code{/bin/sh}rubyץȤ륹ץȤȤƼ¹Ԥ褦Ȥ롥 +2ܤȤǤȲᤷ3ܤ̾Υ륳ޥ +ȤƼ¹Ԥrubyץư롥 + +ƥˤäƤ@code{$0}ɬեѥޤޤʤΤǡ@code{-S} +Ѥrubyɬפ˱ƥץȤõ褦˻ؼ롥ruby +ץȤĤȡιԤβϤϤ뤬ruby2ܤιˤ +Хååˤꡤ2ܤΥȤ3ܤޤǷ³Ȥߤʤơ +3ܤ̵뤹롥 + +ե̾˴ޤޤ륹ڡʤɤˤϡ@code{$*} +@code{$@{1+"$@@"@}}Τۤ褤csh᤹ˤư +@cindex{OS#!ᤷʤк} + +@item -v +@itemx --verbose + +Ĺ⡼ɡư˥СֹɽԤ, ƥѿ +@code{$VERBOSE}åȤ롥ѿåȤƤ, Ĥ +åɤϼ¹Ի˾ĹʥåϤ롥@samp{-v}ץ +ꤵ, ʳΰʤˤϥСɽ, ¹Ԥλ +(ɸϤΥץȤԤʤ). + +@item --version + +rubyΥСɽ. + +ɽ: + +@example +ruby - version 0.87 (95/09/23) +@end example + +@item -x[directory] + +åΥץȤФƼ¹Ԥ롥ץȤɤ߹ˡ +@code{#!}ǻϤޤ, @code{ruby}ȤʸޤԤޤǤɤФ +ץȤν@samp{EOF}(եν), @samp{^D}(ȥD), +@samp{^Z}(ȥZ)ޤͽ@code{__END__}ǻꤹ. + +ǥ쥯ȥ̾ꤹȡץȼ¹˻ꤵ줿ǥ쥯ȥ +ܤ. + +@item -X directory + +ץȼ¹˻ꤵ줿ǥ쥯ȥ˰ܤ. + +@item -y +@itemx --yydebug + +ѥǥХå⡼ɡץȤɽ˥ѥ뤹ιʸ +Ϥβɽ롥ɽ˾ĹʤΤ, ѥ餽ΤΤ +ǥХåͰʳɽʤɤȻפ. +@end table + +@node rubyʸˡ, Ȥ߹ߴؿ, ޥɥ饤ץ, Top +@comment node-name, next, previous, up +@chapter rubyʸˡ + +@menu +* Lexical structure:: +* ץ:: +* :: +@end menu + +@node Lexical structure, ץ, rubyʸˡ, rubyʸˡ +@comment node-name, next, previous, up +@section Lexical structure + +ߤrubyμϥ饯åȤȤASCIIѤ롥rubyʸ +ʸ̤롥̻ҤǤʤǤդΤȤ˶ʸ +Ȥ롥ʸϥڡ(space)(tab)ľ(vertical +tab) CR(carriage return)(form feed)Ǥ롥(newline) +˼³ˤ϶ʸȤơʳǤʸζڤȤƲ +ᤵ롥 + +̻Ҥϱʸ(@samp{"_"}ޤ)Ϥޤꡤѿ³ΤǤ롥 +rubyμ̻ҤŤϤʤߤμϼ̻ҤȤƥޥХȥ +(EUC,SJIS)̤ʤ + +̻Ҥ + +@example +foobar +ruby_is_simple +@end example + +@menu +* :: +* ͽ:: +* ڤʸ:: +@end menu + +@node , ͽ, Lexical structure, Lexical structure +@comment node-name, next, previous, up +@subsection + + + +@example +# this is a comment line +@end example + +ץȸνˤʤ餤ʸʸɽ(@code{?#})ʳ +@code{#}ޤǤϥȤȸʤȹΥХåå +ϼιԤؤΥȤη³̣롥 + +@node ͽ, ڤʸ, , Lexical structure +@comment node-name, next, previous, up +@subsection ͽ + +ͽϰʲ̤Ǥ + +@display +alias def for redo undef +and defined? if rescue when +begin else in retry while +break elsif module return yield +case end nil self __END__ +class ensure not super __FILE__ +continue fail or then __LINE__ +@end display + +ͽϥ饹̾å̾ѿ̾ʤɤѤ뤳ȤϤǤʤ +@samp{$}, @samp{@@}ƬˤĤΤͽȸʤʤΤǡ +ХѿѿˤĤƤʤ + +@node ڤʸ, , ͽ, Lexical structure +@comment node-name, next, previous, up +@subsection ڤʸ + +ʸʤɤΥƥʳξζʸ(֤ȥڡ)Ӳ +(@samp{\n})ڤ국Ȥʤ롥˲Ԥ + +@example +a + +b +@end example + +Τ褦˹ԤǽꡤιԤ³Ȥ(Ǹʸ +黻Ҥ뤤@code{,}Ǥ)ζڤȤǧ롥 + +@node ץ, , Lexical structure, rubyʸˡ +@comment node-name, next, previous, up +@section ץ + + + +@example +print "hello world!\n" +@end example + +ץϼ¤٤ΤǤ롥ȼδ֤ϥߥ(@code{;})ޤ +ϲԤǶڤ롥 + +@node , , ץ, rubyʸˡ +@comment node-name, next, previous, up +@section + + + +@example +TRUE +(1+2)*3 +foo() +if test then ok else ng end +@end example + +RubyǤ@code{nil}ʳɾ롥CPerlʤɤȤϰۤ +ꡤ0@code{""}(ʸ)ϵȤɾʤΤǵĤ뤳ȡ + +ϳ̤ˤäƥ롼ԥ뤳ȤǤ롥 + +@menu +* ʸ:: +* ޥɽ:: +* ɽ:: +* ѿŸ:: +* ͥƥ:: +* ѿ:: +* Хѿ:: +* ѿ:: +* 饹:: +* ѿ:: +* ѿ:: +* :: +* Ϣ:: +* åɸƽм:: +* SUPER:: +* :: +* 黻Ҽ:: +* 湽¤:: +* 饹:: +* ⥸塼:: +* å:: +* ðۥå:: +* ALIAS:: +* UNDEF:: +* DEFINED?:: +@end menu + +@node ʸ, ޥɽ, , +@comment node-name, next, previous, up +@subsection ʸ +@cindex ʸ + + + +@example +"this is a string expression\n" +'ʸ' +@end example + +֥륯(@code{"})dz줿ʸϥХåå³ʸ +ʲΤ褦˲ᤵ롥 + +Хåå嵭ˡ + +@table @samp +@item \t +(0x09) +@item \n +ʸ(0x0a) +@item \r +ʸ(0x0d) +@item \f +ڡʸ(0x0c) +@item \b +Хåڡ(0x08) +@item \a +٥(0x07) +@item \e +(0x1b) +@item \nnn +8ʿɽ(n0-7) +@item \xnn +16ʿɽ(n0-9,a-f) +@item \cx +ȥʸ(xASCIIʸ) +@item \x +ʸxΤ +@end table + +ޤ@code{#}ˤѿŸԤ롥 + +@xref{ѿŸ} + +륯(@code{'})dz줿ʸϡ@code{\\}(Хå +å夽Τ)@code{\'}(륯)ơʸȤ +Ԥʤ + +ʸʸ֥ȤΤǡʸƤ +Ƥ⡤ȤȤʸѤʤ + +@node ޥɽ, ɽ, ʸ, +@comment node-name, next, previous, up +@subsection ޥɽ +@cindex ޥɽ + + + +@example +`date` +@end example + +RubyǤshΤ褦˥ޥɤμ¹Է̤ʸƥΤ褦˻ȤȤ +Ǥ롥@code{``}ǰϤޤ줿ʸϡ֥륯ȤǰϤޤ줿ʸ +Ʊͤ˥Хåå嵭ˡβѿŸԤʤ줿塤ޥɤȤ +Ƽ¹Ԥ졤μ¹Է̤ʸȤͿ롥ޥɤɾ +Ӥ˼¹Ԥ롥 + +@node ɽ, ѿŸ, ޥɽ, +@comment node-name, next, previous, up +@subsection ɽ +@cindex ɽ + + + +@example +/^ruby the OOPL/ +/ruby/i +@end example + +@code{/}ǰϤޤ줿ʸɽɽ@code{/}θʸ +@code{i}Ϳ줿ˤϡɽϥޥåʸʸζ +̤ʤ + +@table @code +@item ^ +Ƭ +@item $ + +@item . +Ǥդ1ʸ +@item \w +ѿ[0-9A-Za-z_]Ʊ +@item \W +ѿ +@item \s +ʸ[ \t\n\r\f]Ʊ +@item \S +ʸ +@item \d +[0-9] Ʊ +@item \D + +@item \b +춭ʸ(ʸ饹) +@item \B +춭ʸ +@item \b +(0x08)(ʸ饹) +@item [ ] +ʸ饹 +@item * +ľɽ0ʾη֤ +@item + +ľɽ1ʾη֤ +@item {m,n} +mnη֤ +@item ? +0ޤ1 +@item | + +@item ( ) +ɽޤȤ +@end table + +¾ʸƱХåå嵭ˡѿŸͭǤ롥 + +@node ѿŸ, ͥƥ, ɽ, +@comment node-name, next, previous, up +@subsection ѿŸ +@cindex ѿŸ + + + +@example +"my name is #@{$ruby@}" +@end example + +֥륯(@code{"})ǰϤޤ줿ʸޥʸɽ +ӥ磻ɥɼǤ@code{#{ѿ̾}}ȤѿƤ +Ÿ뤳ȤǤ롥ѿѿ(@code{$},@code{@@})ǻϤޤ +@code{#ѿ̾}ȤǤŸǤ롥ʸ@code{#}³ʸ +@code{@{},@code{$},@code{@@}ǤʤСΤޤʸ@code{#}ȤƲ +롥 + +@node ͥƥ, ѿ, ѿŸ, +@comment node-name, next, previous, up +@subsection ͥƥ + +@table @samp +@item 123 + +@item -123 +(Ĥ) +@item 1_234 +(10ʿ@code{_}ޤळȤǤ) +@item 123.45 +ư +@item 1.2e-3 +ư +@item 0xffff +16 +@item 0377 +8 +@item ?a +ʸ@code{a}Υ(97) +@item ?\C-a +ȥaΥ(1) +@item ?\M-a +aΥ(225) +@item ?\M-\C-a +-ȥaΥ(129) +@item :ܥ +̻/ѿ̾/黻ҤȰабsendʤɤǥåɤꤹ +ʤɤ˻Ȥ +@end table + +?ɽǤƤΥХåå嵭ˡͭǤ롥 + +@node ѿ, , ͥƥ, +@comment node-name, next, previous, up +@subsection ѿ + +Rubyѿϥ(ͭϰ)ȼ̿(ͭ)ˤä4ʬव졤 +μѿ̾κǽΰʸǷꤵ롥̾ѿ2ʸܰʹߤ +ѿޤ@code{_}Ǥ뤬ƥѿΰϡ@code{$}+1ʸε +פȤѿ롥ѿ̾Ĺ˴ؤ̤¤Ϥʤ + +@menu +* Хѿ:: +* ѿ:: +* 饹:: +* ѿ:: +* ѿ:: +@end menu + +@node Хѿ, ѿ, ѿ, ѿ +@comment node-name, next, previous, up +@subsection Хѿ + + + +@example +$foobar +$/ +@end example + +@code{$}ǻϤޤѿΥפϥХǤꡤץΤɤ +Ǥ⻲ȤǤ롥μ̿ϥץμ̿Хѿˤ +ɬפʤƤʤХѿȤͤ +@code{nil}Ǥ롥 + +@node ѿ, 饹, Хѿ, ѿ +@comment node-name, next, previous, up +@subsection ѿ + + + +@example +@@foobar +@end example + +@code{@@}ǻϤޤѿϥѿǤꡤΥ饹ޤϥ֥ +饹Υåɤ黲ȤǤ롥פϥåǤꡤμ̿ϥ +֥Ȥμ̿ѿˤɬפʤ +ƤʤѿȤͤ@code{nil}Ǥ롥 + +@node 饹, ѿ, ѿ, ѿ +@comment node-name, next, previous, up +@subsection 饹 + + + +@example +FOOBAR +@end example + +ʸǻϤޤ뼱̻ҤؤΥǤꡤǽ줿饹 +ƤΥ֥饹ΥǻȤǤ롥 +Ƥ⥸塼롼ɤ뤳ȤˤäƹԤʤ롥ؤ +ϥȥåץ٥롤ʤåɤǤ٥ǤΤ߲ǽǤ롥 +ϥ饹֤ͤͭ졤ͤѹ뤳ȤǤʤ +(㳰ȯ)饹μ̿ϥ饹μ̿ +Ƥʤ饹Ȥͤ@code{nil}Ǥ롥 + +饹ϼưŪΤǡ饹̾Ǥ롥 + +륯饹ޤϥ⥸塼°黲Ȥ뤿ˤ +@code{::}黻ҤѤ롥 + + +@example +Foo::Bar +@end example + +@code{::}黻ҤѤϤǤʤ + +@node ѿ, ѿ, 饹, ѿ +@comment node-name, next, previous, up +@subsection ѿ + + + +@example +foobar +@end example + +ʸޤ@code{_}ǻϤޤ뼱̻ҤϥѿޤϥåɸƽФ +롥ѿפˤ뾮ʸǻϤޤ뼱̻Ҥؤκǽ +Υפ°ѿˤʤ롥Ƥʤ̻Ҥ +Ȥϰ̵åɸƤӽФȤߤʤ롥 + +ѿΥפϡѿ줿ƥ졼֥å +ޤϥ饹/⥸塼֥åνޤǤǤ롥̿⤽ +Υ֥åνޤ(ȥåץ٥Υѿϥץνλޤ) +Ǥ뤬㳰Ȥƥƥ졼֥å³֥Ȳ줿 +ϡΥ֥ȤǤޤ¸ߤ롥ƱפȤ³ +֥ȴ֤Ǥϥѿ϶ͭ롥 + +@node ѿ, ѿ, ѿ, ѿ +@comment node-name, next, previous, up +@subsection ѿ + +̾ѿʳ˵ѿȸƤФüѿ4Ĥ롥 + +@table @code +@item self +ߤΥåɤμ¹Լ +@item nil +Nil饹ͣΥ(ɽ) +@item __FILE__ +ץȤΥե̾(ʸ) +@item __LINE__ +ߤιֹ() +@end table + +εѿˤäƤͤѹ뤳ȤϤǤʤ +ѿؤ㳰ȯ롥 + +@node , Ϣ, ѿ, +@comment node-name, next, previous, up +@subsection + + + +@example +[1, 2, 3] +@end example + +Array饹ΥǤ롥뼰ϰʲη +롥 + +@example +@code{[} ,@dots{}@code{]} +@end example + +줾μɾ̤ޤ֤ǿ0ζ +뤿ˤ϶ + +@example +@code{[} @code{]} +@end example + +Ѥ롥 + +@node Ϣ, åɸƽм, , +@comment node-name, next, previous, up +@subsection Ϣ + + + +@example +@{1=>2, 2=>4, 3=>6@} +@end example + +ϢȤǤդΥ֥Ȥ(ź)ȤƻǤ롥Ruby +ϢHash(Ϣ)饹ΥǤ롥ܺ٤ϥ饹 +@code{Hash}ιȤ줿@xref{Hash} + +ϢϢϰʲηǤ롥 + +@example +@code{@{} @code{=>} @dots{}@code{@}} +@end example + +줾μɾ̤ͤȤϢ֥Ȥ֤ +ǿ0Ϣ뤿ˤ϶Ϣ + +@example +@code{@{} @code{@}} +@end example + +Ѥ롥Ǥ1İʾ夢硤ۣǤʤ@code{@{}, @code{@}} +άǤ롥 + +@node åɸƽм, SUPER, Ϣ, +@comment node-name, next, previous, up +@subsection åɸƽм + + + +@example +foo.bar() +foo.bar +bar() +print "hello world\n" +print +@end example + +֥Ȥ˥åŪʹʸåǤꡤδ +ܷϰʲ̤Ǥ롥 + +@display +1 `.' å̾ [`(' @dots{}[`*' ] `)'] +@end display + +1ɾ륪֥ȤΡ̻ҤǻꤵåɤƤ +Ф + +å̾ˤ̾μ̻Ҥ¾̻Ҥ@code{?}ޤ@code{!}³ +Τ롥ȤơҸ(֤ͤå)ˤ@code{?} +Ʊ̾Υåɤ٤Ƥ˲ŪʺѤĥå(:@code{tr} +@code{tr!})ˤ@code{!}Ĥ롥 + +åǡ쥷Ф@code{self}ξ硤쥷Фά̾ +ץߥˤؿΤ褦ʷǥåɤƤӽФȤ +롥 + +@display +å̾ `(' @dots{}[`*' ]`)' +@end display + +åɸƤӽФΰμγ̤άǤ뤬Ȥʤ뼰 +ʸޤͽǻϤޤϡۣ롥 + +@example +(, [, @{, /, +, -, if, while, * +@end example + +ruby1Τ褦˸ʬʹ֤ˤȤäƼȻפ褦 +黻Ҥζʤ顤㴳ʣʥ롼Dz᤹롥ͽ̤η +̤ʤäꡤɤΤ褦ɾ뤫ʬʤϾά +̤Ĥ + + + +@example +foo bar+baz # åɸƤӽФfoo(bar+baz) +foo(1+2)*5 # åɸƤӽФ(foo(1+2)) * 5 +foo (1+2)*5 # åɸƤӽФfoo((1+2) * 5) +foo 1 # åɸƤӽФfoo(1) +foo -1 # åɸƤӽФfoo(-1) +foo - 1 # ѿfoo - 1 +@end example + +åɸƤӽФǤϰ1Ĥʤˤ̤άǤ롥 +ФꤷʤåɸƤӽФξϥѿλȤȲᤵ +롥 + +å̾ȤƤǤդμ̻ҤѤ뤳ȤǤ롥ǽʸʸ +Ǥ⾮ʸǤʤѿ̾Ȥϼ̻Ҥ֤̾㤦ΤǽʣƤ +ʤ + +饹ModuleƤå(@code{public},@code{private})ǥ +åɤθƤӽФ椹뤳Ȥ롥@code{private}ǻꤵ줿 +¤줿åɤϴؿǤƤӽФȤʤ + +@node SUPER, ,åɸƽм, Ϣ, +@comment node-name, next, previous, up +@subsection SUPER + + + +@example +super +super(1,2,3) +@end example + +åüʥȤƥѡ饹ΥåɤθƤӽФ +롥ηϥåɤ˥ѡ饹Ѥ뤿 +˻Ȥ + +@display +super +@end display + + +ߤΥåɤͿ줿Τޤޥѥ饹Ʊ̾ΥåɤƤ +ФȤͿ줿ѿͤѹƤ⡤ϤΤϸΰ +ͤǤ롥 + +@display +super`(' @dots{}`)' +@end display + +ȤȤ˥ѡ饹Ʊ̾ΥåɤƤӽФֺǸΰ +@code{*}³̾ΥåɸƤӽФƱͤŸϤ롥 + +@node , 黻Ҽ, SUPER, +@comment node-name, next, previous, up +@subsection + + + +@example +foo = bar +foo[0] = bar +foo.bar = baz +@end example + +ѿʤɤͤꤹ뤿Ѥ롥ϱ黻ҷȤ +Ƥ뤬åɤǤϤʤΤǺ뤳ȤϤǤʤդˤʤ뤳 +Τϰʲ3μǤ롥 + +ѿ(`$'̻ | `@@'̻ | ̻) + +@display +ѿ `=' +@end display + +ѿؤϱդμɾ줿ͤդǻꤵ줿ѿ +롥 + +([@dots{}]) + +@display +1`[' 2@dots{}`]' `=' n +@end display + +ȼؤϡ1ɾ륪֥Ȥˡ2鼰n +ޤǤȤơ@code{[]=} ȤåɤƤӽФ + +°(`.'̻) + +@display +1 `.' ̻ `=' 2 +@end display + +°(ʤΥåɸƤӽФ)ؤϡ1ɾ +֥(쥷Фά줿@code{self})Фơ +@code{̻=}Ȥåɤ2ȤƸƤӽФ + +@menu +* :: +* ¿:: +@end menu + +@node , ¿, , +@comment node-name, next, previous, up +@subsubsection + + + +@example +foo += 12 +@end example + +ͤΤΤ˱黻ä뤿˼롥 + +@display +1 op= 2 # 1ǽǤʤФʤʤ +@end display + +ηŪ@code{1 = 1 op 2}Ʊͤɾ롥 +11ɾʤΤǡ1Ѥϡ +@code{1 = 1 op 2}Ȥưۤʤ̤Ȥʤ롥 +opȤƻȤ黻Ҥ + +@display + +, -, *, /, %, **, &, |, ^, <<, >> +@end display + +11Ǥ롥黻Ҥ@code{=}δ֤˥ڡƤϤʤ + +@node ¿, , , +@comment node-name, next, previous, up +@subsubsection ¿ + + + +@example +foo, bar, baz = 1, 2, 3 +foo, = list() +foo, *rest = list2() +@end example + +ƱʣѿԤʤȤǤ롥ηϰʲ̤Ǥ롥 + +@display + `,' [ `,'@dots{}] [`*' ]= [, @dots{}] +@end display + +դˤ3μ롥դμĤʤϡ +Ȥ(ɬפʤ@code{to_a}åɤѴ)Ǥ +줾캸դ롥ʳξˤϡ줾μͤդ +롥դοȱդǤοʤˤʤѿˤ +@code{nil}졤;äǤ̵뤵롥¿κǸǤ +@code{*}硤ĤưȤ롥 + + + +@example +foo, bar = [1, 2] # foo = 1; bar = 2 +foo, bar = 1, 2 # foo = 1; bar = 2 +foo, bar = 1 # foo = 1; bar = nil + +foo, bar, baz = 1, 2 # foo = 1; bar = 2; baz = nil +foo, bar = 1, 2, 3 # foo = 1; bar = 2 +foo,*bar = 1, 2, 3 # foo = 1; bar = [2, 3] +@end example + +¿ͤ(Ѵ줿)դǤ롥 + +@node 黻Ҽ, 湽¤, , +@comment node-name, next, previous, up +@subsection 黻Ҽ + + + +@example +1+2*3/4 +@end example + +ץߥؤΤ˰ΥåɸƤӽФ湽¤ϱ黻ҷ +Ȥ롥Rubyˤϰʲˤ黻Ҥ롥ΤΤۤɷ̤ +Ʊα黻Ҥη̤ƱǤ롥 +@cindex{絬§} + +@display + :: + [](), []=() + ** + -(unary) +(unary) ! ~ + * / % + + - + << >> + & + | ^ + > >= < <= + <=> == != =~ !~ + && + || + .. ... + =() (+=, -=@dots{}) + and or + not + if while +@end display + +ۤȤɤα黻ˤϥåɸƤӽФȤƲᤵ(饹˺ +Ǥ)ǤʤüʤΤ롥Ǥʤü黻 +Ҥ + +@display + =, .., ..., !, not, &&, and, |, or, if, while +@end display + +γƱ黻ҤȡȤȤ߹碌ˤʤ !=, !~ Ӽ黻Ҥ +롥 + +Ǥü黻Ұʳα黻ҷϰʲΤ褦ʥåɸƤӽФȸ +ʤ롥 + +ñ黻(+, -, ~) + +@display +1. 黻 () +@end display + +(Ϣޤ)Ǥλ(1 `[' 2@dots{}`]') + +@display +1. `[]' (2@dots{}) +@end display + +Ǥ( 1 `[' 2@dots{}`]' `=' n) + +@display +1. `[]=' (2@dots{}, n) +@end display + +ʳ2黻(1 黻 2) + +@display +1. 黻 (2) +@end display + +ϤޤǤ⤽ΥåɸƤӽФȤƲᤵȤ +ǡrubyץǤҤȤ櫓ǤϤʤ + +@node 湽¤, 饹, 黻Ҽ, +@comment node-name, next, previous, up +@subsection 湽¤ + +RubyǤ(CʤɤȤϰۤʤ)湽¤ϼǤꡤ餫ͤġ +lispʤɤ˻ƤȤ롥RubyCPerlѤ湽¤ +ĤħŪ湽¤Ȥƥƥ졼ġƥ졼Ϸ֤Ϥ +Ȥ桼ΤǤ. +@xref{ƥ졼(֤)} + +@menu +* IF:: +* IF:: +* CASE:: +* AND:: +* OR:: +* ϰϻ꼰:: +* NOT:: +* WHILE:: +* WHILE:: +* ƥ졼(֤):: +* FOR:: +* YIELD:: +* FAIL:: +* BEGIN:: +* RETRY:: +* RETURN:: +* BREAK:: +* CONTINUE:: +* REDO:: +@end menu + +@node IF, IF, 湽¤, 湽¤ +@comment node-name, next, previous, up +@subsubsection IF + + + +@example +if age >= 12 then print "adult fee\n" else print "child fee\n" end +gender = if foo.gender == "male" then "male" else "female" end +@end example + +ʸ + +@display +if 1 [then] + @dots{} +[elsif 2 [then] + @dots{}]@dots{} +[else + @dots{}] +end +@end display + +ȽǼRuby@code{if}@code{else if}Ǥ@code{elif}Ǥʤ +@code{elsif}@code{if}Ϣ³ԤʤȤդ뤳ȡ郎Ω +Ƽ¹Ԥ֤ͤ¹Ԥʤäͤ@code{nil} + +@code{if}ξȽμǤʸɽƥϼ +@example +$_=~ ƥ +@end example +ξάǤȤߤʤ롥 + +@node IF, CASE, IF, 湽¤ +@comment node-name, next, previous, up +@subsubsection IF + + + +@example +print "debug\n" if $debug +@end example + +ʸ + +@display + if +@end display + +、(@code{if})μԤ뼰äɾ롥ưб +@code{if}ƱͤǤ롥@code{if}ҤΤĤͤϾ郎Ω +ˤϼ͡Ωξˤ@code{nil}Ǥ롥 + +@node CASE, AND, IF, 湽¤ +@comment node-name, next, previous, up +@subsubsection CASE + + + +@example +case $age +when 0 .. 2 + "baby" +when 3 .. 6 + "little child" +when 7 .. 12 + "child" +when 12 .. 18 + "youth" +else + "adult" +end +@end example + +ʸ + +@display +case 0 +[when 1 [, 2]@dots{}[then] + @dots{}]@dots{} +[else + @dots{}] +end +@end display + +ʬC@code{switch}Pascal@code{case}˻Ƥ롥 +@code{break}æФ뤳Ȥμ˷³뤳ȤʤΤա + +ΰפ@code{n =~ 0}ǹԤʤ롥Ĥޤꡤ + +@example +case expr0 +when expr1, expr2 + stmt1 +when expr3, expr4 + stmt2 +else + stmt3 +end +@end example + +ϰʲ@code{if}ȤۤǤ롥 + +@example +_tmp = expr0 +if expr1 =~ _tmp || expr2 =~ _tmp + stmt1 +elsif expr3 =~ _tmp || expr4 =~ _tmp + stmt2 +else + stmt3 +end +@end example + +@node AND, OR, CASE, 湽¤ +@comment node-name, next, previous, up +@subsubsection AND + + + +@example +test && set +test and set +@end example + +ʸ + +@display +1 `&&' 2 +1 `and' 2 +@end display + +1ɾͤ(@code{nil}ʳ)ǤС2ɾ롥 +@code{and}̤ͥ㤤̾Ǥ롥 + +@code{and}ξդμǤʸɽƥϼ +@code{$_ =~ ƥ} ξάǤȤߤʤ롥 + +@node OR, ϰϻ꼰, AND, 湽¤ +@comment node-name, next, previous, up +@subsubsection OR + + + +@example +demo || die +demo or die +@end example + +ʸ + +@display +1 `||' 2 +1 'or 2 +@end display + +1ɾͤǤС2ɾ롥@code{or}̤ͥ +㤤̾Ǥ롥 + +@code{or}ξդμǤʸɽƥϼ +@code{$_ =~ ƥ}ξά +ǤȤߤʤ롥 + +@node ϰϻ꼰, NOT, OR, 湽¤ +@comment node-name, next, previous, up +@subsubsection ϰϻ꼰 + + + +@example +1 .. 20 +/first/ ... /second/ +@end example + +ʸ + +@display +1 `..' 2 +1 `...' 2 +@end display + +PʳξǤϼ1鼰2ޤǤϰϥ֥Ȥ֤ + +PȤϰϻ꼰Ѥ줿ϡ1ˤʤޤǤϵ֤ +θϼ2֤ޤǤϿ֤2ˤʤо֤ϵ롥 +@code{..}ϼ1ˤʤä˼2ɾ(awkΤ褦)@code{...}ϼ +ɾޤǼ2ɾʤ(sedΤ褦) + +Pϰϻ꼰ξդȤʤ뼰Ǥϡʸɽƥϼ +@code{$_ =~ ƥ}ξά@code{$. == }ξάȲᤵ +롥 + +@node NOT, WHILE, ϰϻ꼰, 湽¤ +@comment node-name, next, previous, up +@subsubsection NOT + + + +@example +! me +not me +i != you +@end example + +ʸ + +@display +`!' +not +@end display + +ǤеǤп֤ + +@code{!}Ǥʸɽƥϼ@code{$_ =~ ƥ}ξά +ǤȤߤʤ롥 + +@display +1 `!=' 2 +@end display + +@code{!(1 == 2)}ξά + +@display +1 `!~' 2 +@end display + +@code{!(1 ~= 2)}ξά + +@node WHILE, WHILE, NOT, 湽¤ +@comment node-name, next, previous, up +@subsubsection WHILE + + + +@example +while sunshine() + work() +end +@end example + +ʸ + +@display +while + @dots{} +end +@end display + +ɾͤδ֡Τ֤¹Ԥ롥@code{while}ͤ +@code{nil}Ǥ롥 + +whileξȽμǤʸɽƥϼ +@code{$_ =~ ƥ} ξάǤȤߤʤ롥 + +@node WHILE, ƥ졼(֤), WHILE, 湽¤ +@comment node-name, next, previous, up +@subsubsection WHILE + + + +@example +sleep while idle +@end example + +ʸ + +@display +ñ㼰 while +@end display + +μɾͤδ֡ñ㼰֤¹Ԥ롥ñ㼰 +@code{begin}ǤϤޤ@code{begin}ɾƤPɾ +(٤begin¹Ԥ)@code{while}ҤΤĤͤ +@code{nil}Ǥ롥 + +@node ƥ졼(֤), FOR, WHILE, 湽¤ +@comment node-name, next, previous, up +@subsubsection ƥ졼(֤) + + + +@example +[1,2,3].each@{|i| print i*2, "\n"@} +@end example + +ƥ졼Ȥ湽¤(ä˥롼)ݲΤѤåɤ +Ǥ롥ɤ(֥åȸƤФ)ꤷƥƥ졼Ƥ +Фȡƥ졼ŬͤåȤƥ֥åɾ(餯 +ʣ)ƥ졼Υ֥åθƤӽФ@code{yield}Ѥ( +) + +ƥ졼θƤӽФϰʲιʸǹԤʤ롥 + +@display + `@{' [`|' ռ@dots{}`|'] @dots{}`@}' +@end display + +ּפ֥åȤꤷּפΥåɤƥ졼Ȥɾ +롥ּפΥȥåץ٥Υåɤƥ졼ȤƸƤӽФ졤 +쥷Фɽ䡤μϥƥ졼ȤƤϸƤӽФʤּ +ʣμޤơƥ졼Ȥƽ˸ƤФ롥 + +ƥ졼@code{yield}¹Ԥȡǻꤵ줿ͤռ +ǻꤵ줿ѿ졤֥å¹Ԥ롥֥åμ¹Ԥλ +Ȥͤ @code{yield}ͤȤ֤롥åɤƥ졼 +ȤƸƤӽФ줿ɤϥå@code{iterator?}ͤΤ뤳 +ȤǤ롥ˤ@code{Enumerable:grep}åɤΤ褦˥ƥ졼Ȥ +ƸƤФ줿̤ΥåɤȤƸƤФ줿Ȥưۤʤåɤ +롥 + +@node FOR, YIELD, ƥ졼(֤), 湽¤ +@comment node-name, next, previous, up +@subsubsection FOR + + + +@example +for i in [1, 2, 3] + print i*2, "\n" +end +@end example + +֥ȤγǤФԤʤηƤ롥 +ϰʲ̤ꡥ + +@display +for ռ@dots{} in + +end +@end display + +γǤФ¹Ԥ롥ϰʲμȤۤǤ롥֤ۤܡ +ȤΤϡƥ졼֥åϿѿͭϰϤƳ +ΤФ@code{for}ʸϥѿΥפ˱ƶڤܤʤ +ʤ뤫Ǥ + +@display +().each `@{' `|' ռ@dots{}`|' `@}' +@end display + +äƼͤΥ֥Ȥå@code{each}ʤ硤 +@code{for}¹Ԥ㳰ȯ롥 + +@node YIELD, FAIL, FOR, 湽¤ +@comment node-name, next, previous, up +@subsubsection YIELD + + + +@example +yield data +@end example + +ʸ + +@display +yield `(' [ [`,' @dots{}]]) +@end display + +ƥ졼ǥ֥åθƤӽФԤʤ@code{yield}¹Ԥ +ɤƥ졼ȤƸƤӽФƤʤˤ㳰ȯ롥 +@code{yield} ͤϥ֥åͤǤ롥 + +@code{yield}ΰγ̤ۣǤʤ¤άǤ롥 + +@node FAIL, BEGIN, YIELD, 湽¤ +@comment node-name, next, previous, up +@subsubsection FAIL + + + +@example +fail +fail "you lose" +@end example + +ʸ + +@display +fail `(' [å] `)' +@end display + +㳰ȯ롥åͿ줿ˤȯե +ֹ̾ƥѿ@code{$@@}ˡå@code{$!}˥åȤ롥 + +@code{fail}ΰγ̤ϾάǤ롥 + +@node BEGIN, RETRY, FAIL, 湽¤ +@comment node-name, next, previous, up +@subsubsection BEGIN + + + +@example +begin + do_something() +rescue + recover() +ensure + must_to_do() +end +@end example + +ʣμޤȤ뤿㳰Τ@code{begin}롥 +@code{begin}ηϰʲ̤Ǥ롥 + +@display +begin + @dots{} +[rescue + @dots{}] +[ensure + @dots{}] +end +@end display + +@code{begin}ͤϰֺǸɾ줿ͤǤ롥@code{begin} +ȯ㳰@code{rescue}ͤ뤳Ȥ롥 +@code{begin}ͤϤ@code{rescue}ǺǸɾͤ +롥@code{ensure}¸ߤ@code{begin}λɬ +(ェλǤʤ㳰, @code{return}, @code{break}, +@code{continue}, @code{redo}ʤɤˤæФǤ)@code{ensure}μɾ +롥 + +@node RETRY, RETURN, BEGIN, 湽¤ +@comment node-name, next, previous, up +@subsubsection RETRY + + + +@example +retry +@end example + +ʸ + +@display +retry +@end display + +Ƽ¹ԡ@code{begin}@code{rescue}ǻȤ줿硤@code{begin} +Ϥᤫ⤦ټ¹Ԥ롥㳰ԤʤäƤƻԤΤ˻Ȥ + +@example +begin + 餫ν(㳰ȯ) +rescue + 㳰 + retry # 㳰бƺƼ¹ +end +@end example + +ƥ졼ƥ졼֥åޤforʸǻȤ줿ˤϡ +ƥ졼ɾΤǽ餫¹Ԥ롥ƥ졼ΰɾ롥 + +@example +for i in 1..5 + retry if some_condition # i == 1 ľ +end +@end example + +@example +# 桼until loop +def until(cond) + yield + retry if not cond +end +@end example + +@code{rescue}䥤ƥ졼ʳretryѤ줿㳰ȯ롥 + +@node RETURN, BREAK, RETRY, 湽¤ +@comment node-name, next, previous, up +@subsubsection RETURN + + + +@example +return +return 12 +return 1,2,3 +@end example + +ʸ + +@display +return [[`,' @dots{}]] +@end display + +ͤͤȤƥåɤμ¹Ԥλ롥2İʾͿ줿 +ˤϡǤȤåɤͤȤ롥Ĥʤ +ˤ @code{nil} ͤȤʤ롥 + +@node BREAK, CONTINUE, RETURN, 湽¤ +@comment node-name, next, previous, up +@subsubsection BREAK + + + +@example +break +@end example + +ʸ + +@display +break +@end display + +@code{break} ϥ롼פæФ롥CȰ㤤@code{break}ϤäȤ¦ +롼פæФѤ@code{case} ȴѤϻʤ + +@node CONTINUE, REDO, BREAK, 湽¤ +@comment node-name, next, previous, up +@subsubsection CONTINUE + + + +@example +continue +@end example + +ʸ + +@display +continue +@end display + +@code{continue}ϤäȤ¦Υ롼פμη֤Ϥ롥 + +@node REDO, 湽¤, CONTINUE, 湽¤ +@comment node-name, next, previous, up +@subsubsection REDO + + + +@example +redo +@end example + +ʸ + +@display +redo +@end display + +@findex redo +@code{redo}ϥ롼ΥåԤʤ鷺ߤη֤ľ + +@node 饹, ⥸塼, 湽¤, +@comment node-name, next, previous, up +@subsection 饹 +@cindex 饹 + + + +@example +class Foo:Super + def test + : + end + : +end +@end example + +ʸ + +@display +class 饹̾ [`:' ѡ饹̾ ] + +end +@end display + +@findex class +饹̾ʸǻϤޤ뼱̻ҤǤ롥 + +@node ⥸塼, å, 饹, +@comment node-name, next, previous, up +@subsection ⥸塼 +@cindex ⥸塼 + + + +@example +module Foo + def test + : + end + : +end +@end example + +ʸ + +@display +module 饹̾ + +end +@end display + +@findex module +⥸塼̾ʸǻϤޤ뼱̻ҤǤ롥 + +@node å, ðۥå, ⥸塼, +@comment node-name, next, previous, up +@subsection å +@cindex åɤ + + + +@example +def fact(n) + if n == 1 then + 1 + else + n * fact(n-1) + end +end +@end example + +ʸ + +@display +def å̾ [`(' [ [= ǥե]]@dots{}[`,' `*' ]`)'] + +end +@end display +@findex def + +˥ǥեȼͿ줿硤åɸƤӽФ˰Ϳ +ʤäˤϥǥեȼɾ̤ǽ(ǥեȼ +ɾϸƤӽФ˹Ԥ)ֺǸΰ@code{*}³(ñ) +Ǥ硤μɾ(ǤʤѴ)Ÿơ +Ȥɲä롥 + +̾åϥͥȤǤʤΤǡåǤϥå +ƤӸƤӽФʤ + +å̾ϼ̻ҤޤʸǤ롥黻Ҥκˤʸ +ǻꤹ롥¤ӤκǸ@code{*}硤¿Ϳ +줿°ϡǸΰȤͿ(ʤˤϥ顼) + +åɤˤϸƤӽФ¤ä뤳ȤǤ¤ä줿åɤϡ +ؿǤƤӽФʤ(privateå) + +˥åɤ硤饹γˤdefϥǥե +Ǥprivateåɤ饹ˤdefpublic +ɤ롥ѡ饹Υåɤˤ +åɤβĻϥѡ饹ΥåɤΤΤѤ + +åɤβĻѹˤ@code{Module}饹Ƥ +@code{public}, @code{private}γƥåɤѤ롥 + +@node ðۥå, ALIAS, å, +@comment node-name, next, previous, up +@subsection ðۥå + + + +@example +def foo.test() + print "this is foo\n" +end +@end example + +ʸ + +@display +def `.' å̾ [`(' [ [= ǥե]]@dots{}[`,' `*' ]`)'] + +end +@end display + +ðۥåɤȤϤΥ֥Ȥ˸ͭΥåɤǤ롥 + +ηϼͤǤ륪֥Ȥðۥåɤ롥ͤ +(ӥȥ饹Ǥʤ)̾索֥Ȥ饹ޤϥ⥸塼Ǥ +ɬפ롥̾åȤϰۤʤꡤðۥåɤϥå +ǤͥȤ뤳ȤǤ롥 + +ðۥåɤ̾ϷѾʤ㳰Ȥƥ饹ðۥåɤϤ +֥饹ˤѾ롥ؤХ饹ðۥåɤ¾Υ֥ +Ȼظƥˤ륯饹åɤƯ롥 + +: 롼ɤ⥸塼ðۥåɤϷѾʤ + +@node ALIAS, UNDEF, ðۥå, +@comment node-name, next, previous, up +@subsection ALIAS +@cindex åɤ̾Ĥ + + + +@example +alias foo bar +@end example + +ʸ + +@display +alias å̾1 å̾2 +@end display + +@findex alias +@code{alias}ʸǥåɤ̾Ĥ뤳ȤǤ롥̾դ줿 +åɤϡλǤΥåѤΥåɤ +Ƥ⡤θŤåɤƤӽФ줿ΤƱƯ롥 + +@node UNDEF, DEFINED?, ALIAS, +@comment node-name, next, previous, up +@subsection UNDEF +@cindex åɤä + + + +@example +undef bar +@end example + +ʸ + +@display +undef å̾ +@end display + +@findex undef +åɤäˤundefѤ롥 + +defˤ̾@code{undef}ˤäˤäƥ饹Υ +եѡ饹Ωѹ뤳ȤǤ롥 +ɤself˥åäƤ⤢Τǡ褯դʤȴ¸ +åɤưʤʤǽ롥 + +@node DEFINED?, , UNDEF, +@comment node-name, next, previous, up +@subsection DEFINED? +@cindex åɤƤ뤫ɤ +@cindex ѿƤ뤫ɤ +@cindex Ƥ뤫ɤ + + + +@example +defined? print +defined? File.print +defined?(foobar) +defined?($foobar) +defined?(@@foobar) +defined?(Foobar) +@end example + +ʸ + +@display +defined? +@end display + +@findex defined? +åɸƤӽФξ硤ΥåɤƤ˿֤ +ѿλȤǤϡѿƤ +˿֤ʳμξϼɾơ㳰ȯʤп +֤ + +@node Ȥ߹ߴؿ, Ȥ߹ѿ, rubyʸˡ, Top +@comment node-name, next, previous, up +@chapter Ȥ߹ߴؿ + +Rubyˤϸ̩ʰ̣ǤϴؿϤʤ@code{Kernel}饹δؿåɤ +(Ƥ̾說饹ؿǸƤӽФΤ)ؿŪѤ롥 +ŪѤåɤʲˤ롥Υåɤ +ˤϸߴͤƹԤʤ٤Ǥ롥 + +@ftable @code +@item autoload(@var{module}, @var{file}) + +@var{module}˺ǽ˥@var{file}@code{require}褦 +ꤹ롥@var{module}ʸޤϥܥǻꤹ롥 + +@item caller([@var{level}]) + +@var{level}ʾθƽФξ@code{$@@}η롥ȥåץ٥ +Ǥ@code{nil}֤callerͤ@code{$@@}뤳Ȥ㳰 +ȯ֤Ǥ롥ޤʲΤ褦ʥɤǸƽФطΥХåȥ졼 +ɽǤ롥 + +@example +n = 0 +while c = caller(n) + print c, "\n" +end +@end example + +@item eof +@itemx eof? + +ޥɥ饤Ϥ@code{EOF}ãƤ硤֤ + +@item eval(@var{expr}) + +@var{expr}ȤͿ줿ʸrubyץȤƲᡤ¹Ԥ롥 + +@item exec(@var{command}) + +ץμ¹Ԥλ롥@var{status}ȤͿ줿硤 +ͤrubyޥɤνλơȤ롥ǥեȤ0 + +@item exit!(@var{status}) + +ץμ¹Ԥλ롥@var{status}λơȤ롥 +@code{exit}Ȥϰäơ㳰ʤɤϰڹԤʤʤ@code{fork}θ塤 +ҥץλʤɤѤ롥 + +@item fork + +@samp{fork}ƥॳ¹Ԥҥץ롥ܺ٤ +@samp{fork(2)}ȤΤȡƥץ¦ǤϻҥץΥץid +ҥץ¦Ǥ@code{nil}֤餫θǻҥץ +Ԥˤ㳰ȯ롥ƥ졼ȤƸƤФ줿ϡ +ץͿ줿֥åɾ֥åɾλǻ +ץェλ롥 + +@item format(@var{format}@dots{}) + +եޥåȤȤͿ줿ʸC@samp{sprintf}Ʊ褦 +ᤷŸʸ֤å@code{sprintf}̾ + +Rubyˤ@samp{format}ҤγĥˤĤƤ@code{sprintf}ι +ȤΤȡ + +@item getc + +ɸϤʸФͤɤ߹ʸʸ(ASCII) +ɽ@code{Fixnum}Ǥ롥 + +@item gets + +ȤͿ줿ե(ʤɸ)ǹ벾 +Ūʥե(ƥѿ@code{$<}ǥǤ)ɤ߹ +ǡɤ߹ߤˤϤʸ֤եν +ãˤ@code{nil}֤Ԥζڤϥƥѿ@code{$/}ˤä +ѹǤ롥ɤ߹ʸϥƥѿ@code{$_}ˤ⥻åȤ롥 + +@item gsub(@var{pattern}[, @var{replace}]) +@itemx gsub!(@var{pattern}[, @var{replace}]) + +ƥѿ@code{$_}λؤʸ @var{pattern}˥ޥåʬ +@var{replace}֤롥@code{String}饹@code{gsub} +ɤβȤΤȡ@var{replace}ά줿ˤϥƥ졼 +ư֥åɾִ̤롥@code{gsub}åɤ +@code{$_}ͤԡơԡ@code{$_}롥 + +@code{gsub!}@code{$_}λؤƤʸΤΤ롥 + +@item iterator? + +åɤƥ졼ȤƸƤӽФ줿ˤϿǤʤ˵֤ +Ҹ졥 + +@item kill(@var{signal}, @var{pid}@dots{}) + +@var{pid}ǻꤵ줿ץ˥ʥ롥@var{signal}ϥʥ +ֹ椫̾ǻꤹ롥ͤĥʥ(뤤ϥʥ̾ +@code{-})ͿȥץǤϤʤץ롼פ˥ʥ롥 + +@item load(@var{file}) + +@var{file}ɤ롥@var{file}ɤѥϥƥѿ +@code{$:}Ƿꤵ롥 + +@item loop + +̵¥롼פ륤ƥ졼(Ǥʤ¤)ʵפ˥ƥ졼֥å +ɾ³롥 + +@item open(@var{file}[, @var{mode}]) + +@var{file}ץơ@code{File}֥Ȥ֤ե̾ +ץեե̾@code{|}ǻϤޤˤ³ʸ +ޥɤȤƵưѥץ饤롥 + +ޥ̾@samp{"-"}Ǥ@code{open}rubyλҥץ +λҥץȤΥѥפ֤ + +@var{mode}ϥեΥ⡼ɤꤹ롥ϰʲΤΤ +줫ʸǤ롥 + +@table @samp +@item r +ɤ߹ѡ@code{open}եϤ餫¸ߤƤɬפ +롥 + +@item r+ +ɤ߽ξѡ@code{open}եϤ餫¸ߤƤɬפ +롥 + +@item w +ѡե뤬¸ߤƤ硤Ĺ0ˤ롥¸ߤƤ +п˥ե롥 + +@item w+ +ɤ߽ξѡɤ߹ߤԤʤ뤳Ȱʳ@samp{"w"}ƱƯ롥 + +@item a +ɲýѡեϤ餫¸ߤƤɬפ롥 +ϥեκǸɲä롥 + +@item a+ +ɤ߽ξѡե뤬¸ߤƤʤп˺롥 +ϥեκǸ˽롥 +@end table + +⡼ɤά줿ΥǥեȤ@samp{"r"}Ǥ롥 + +@item print(@var{arg}1@dots{}) + +˽Ϥ롥Ϳʤˤ@code{$_}ͤϤ롥 +ʸʳΥ֥ȤȤͿ줿ˤϡ֥ +Ȥ@code{to_s}åɤˤäʸѴƤϤ롥 +ѿ@code{$;}(ϥեɥѥ졼)@code{nil}Ǥʤͤå +Ƥˤϡưδ֤ˤʸϤ롥ƥѿ +@code{$\}(ϥեɥѥ졼)@code{nil}ǤʤͤåȤƤ +ˤϡǸˤϤ롥 + +@item printf([@var{port}, ]@var{format}, @var{arg}@dots{}) + +CprintfƱ褦@var{format}˽ʸѴ +롥1IOΥ֥饹ΥǤäϤΥ֥ +ȤФƽϤԤʤǥեȤ@code{$stdout}˽Ϥ롥 + +RubyˤformatҤγĥˤĤƤsprintfιȤΤȡ + +@item proc +@itemx lambda + +Ϳ줿ƥ졼֥å³֥(饹@code{Proc}Υ +)Ȥ֤ + +@item rand(@var{max}) + +0@var{max}ۤʤϰϤȯ롥ͤ +@code{Fixnum} + +@item require(@var{feature}) + +@var{feature}ǻꤵfileɤ롥@var{feature}ϥɤե +ꤹʸǡĥ@code{.rb}ꤵƤruby +ץȡĥ@code{.o}ꤵƤϡХʥ⥸塼 +롥ĤΥƥǤϥХʥ⥸塼Υɤ +ʤХʥ⥸塼μºݤΥեγĥҤϥƥ +˰ۤʤ뤬@var{feature}̾γĥҤϤĤ@code{.o}Ѥ롥 + +ĥҤꤵʤϡޤ@code{.rb}@code{.o}äơե +롥 + +requireϼºݤ˥ɤˤ @code{TRUE}˥ɤƤ +@code{FALSE}֤ޤɤ@var{feature}̾(ĥҤޤ +)ѿ@code{$"}ɲä롥 + +@item select(@var{reads}[, @var{writes}[, @var{execpts}[, @var{timeout}]]]) + +@samp{select(2)}¹Ԥ롥@var{reads}/@var{writes}/@var{execpts}ˤ +IO(ޤϤΥ֥饹)ΥͿ롥@var{timeout} +Fixnum/Float/TimeΤ줫ǻꤹ롥ͤ@var{timeout}Ω +ˤ@code{nil}ǤʤȤ3Ǥ֤γǤ +//㳰ԤΥ֥ȤǤ(ꤷΥ֥åȡ +Ԥ֥Ȥꤷʤä@code{nil})ƥॳ +¹˳ߤäˤϳ϶ˤʤ롥 + +@item sleep([@var{sec}]) + +@var{sec}äץμ¹Ԥߤ롥@var{sec}ά줿硤 +ץ@code{SIGALRM}ʤ¤ꡤʵפ˥פ롥ºݤ˥ +פÿ֤ + +@item sprintf(@var{format}@dots{}) + +@var{format}ʸC@samp{sprintf}Ʊ褦˲ᤷŸ +ʸ֤å@code{format}̾ + +@var{format}ҤC@samp{sprintf}()դ( +Rubyˤ unsignedʤΤǡ%uϽ)˲ä, %b, %B, %O, %XȤ +ȤǤ롥%bϿͤ2ɽ%B, %O, %XϤ줾2ʡ8ʡ16ʿ +ɽԤʤονκݤ2ɽǤϤʤɽ +Ƭ@code{-}ĤΤɽ롥 + +@item srand([@var{seed}]) + +@var{seed}ꤷŤ֤ͤͤά줿ˤ +@samp{time(3)}֤ͤǥեȤȤ롥 + +@item sub(@var{pattern}[, @var{replace}]) +@itemx sub!(@var{pattern}[, @var{replace}]) + +ƥѿ@code{$_}λؤʸǺǽ@var{pattern}˥ޥåʬ +@var{replace}֤롥@var{replace} ά줿ˤϥ +졼Ȥư֥åɾִ̤롥subåɤ +@code{$_}ͤԡơԡ@code{$_}롥 +¾ξܺ٤˴ؤƤ@code{String}饹@code{sub}åɤβ +ȤΤȡ + +@code{sub!}@code{$_}λؤƤʸΤΤ롥 + +@item syscall(@var{num}, @var{arg}@dots{}) + +@var{num}ǻꤵ줿ֹΥƥॳ¹Ԥ롥2ʹߤ +ƥॳΰȤϤʸޤǤʤФʤʤ + +@item system(@var{command}) + +@var{command}¹Ԥ(֥ץstatus 0ǽλ) +ˤϿԤˤϵ֤λơѿ@code{$?} ǻ +ȤǤ롥 + +@item test(@var{cmd}, @var{file} [, @var{file}]) + +եƥȤԤ@var{cmd}ϰʲ˼ʸƥǤ롥ե +̾Ȥ@code{"&"}ꤹȡľΥեؤ@samp{stat(2)}η +̤Ѥ롥 + + +1Ĥΰ + +@display +?r ե¸ uid ɤळȤǤ +?w ե˼¸ uid ǽȤǤ +?x ե¸ uid Ǽ¹Ԥ뤳ȤǤ +?o եνͭԤ¸ uid Ǥ + +?R ե uid ɤळȤǤ +?W ե˼ uid ǽȤǤ +?X ե uid Ǽ¹Ԥ뤳ȤǤ +?O եνͭԤ uid Ǥ + +?e ե뤬¸ߤ + +?z ե륵 0 Ǥ +?s ե륵 0 Ǥʤ(ե륵֤) + +?f եϥץ졼եǤ +?d եϥǥ쥯ȥǤ +?l եϥܥåǤ +?p ե̾Ĥѥ(FIFO)Ǥ +?S եϥåȤǤ +?b եϥ֥åüեǤ +?c եϥ饯üեǤ + +?u ե setuid ӥåȤåȤƤ +?g ե setgid ӥåȤåȤƤ +?k ե sticky ӥåȤåȤƤ + +?M ץȤμ¹ԤϤǤΥեθŤ +?A ץȤμ¹ԤϤǤΥեΥ +?C ץȤμ¹ԤϤǤΥե inode ѹ +@end display + +2Ĥΰ + +@display +?= ե1ȥե2Υॹפ +?> ե1ե2깹֤ +?< ե1ե2깹֤Ť +?- ե1ե2˥ϡɥƤ +@end display + +@item trace_var(@var{var}, @var{command}) + +@var{var}ǻꤵ줿ѿͤѹ줿ɾ +@var{command}ꤹ롥@var{command}ʸޤϥ֥åǻꤹ +롥trace뤿ˤ@code{untrace_var}Ѥ롥 + +@item trap(@var{signal}, @var{command}) +@itemx trap(@var{signal}) @{@dots{}@} + +@var{signal}γߤä@var{command}¹Ԥ롥 +@var{signal}ϥʥ̾ʥֹ桥@var{command}ʸޤ +ϥ֥åǻꤹ롥commandȤ@samp{"SIG_IGN"}ޤ +@samp{"IGNORE"}ꤷˤϤΥʥ̵뤹(ǽʤ) +@samp{"SIG_DFL"}ޤ@samp{"DEFAULT"}ꤷϥǥեȤư +Ԥʤ@samp{"EXIT"}ꤷϥʥ(λԤ +)exit status 1ǽλ롥 + +@item untrace_var(@var{var}) + +@var{var}ФƤtrace롥traceȤƻꤵƤ륪 +Ȥˤ֤ + +@item wait + +ҥץλΤԤλҥץpid֤ҥץ +Ĥʤ@code{nil}֤ + +@item waitpid(@var{pid}, @var{flags}) + +@var{pid}ǻꤵλҥץνλԤΥץλ +˿֤ҥץ¸ߤʤΥ֥å⡼ɤǻ +ץޤλƤʤˤ@code{nil}֤@samp{waitpid(2)} +@samp{wait4(2)}μƤʤޥǤ@var{flags}ϤĤ@code{nil}ޤ +0ǤʤФʤʤ +@end ftable + +@node Ȥ߹ѿ, Ȥ߹ߥ饹ȥ⥸塼, Ȥ߹ߴؿ, Top +@comment node-name, next, previous, up +@chapter Ȥ߹ѿ +@cindex{ȹѿ} + +@table @samp + +@item $! +顼åfailꤹ롥 + +@item $@@ +顼ȯΥե̾ȹֹ椬 +@example +"ե:ֹ[:å̾()]" +@end display +ηdzǼ롥 + +@item $& +Ǹѥޥå + +@item $` +ǸΥѥޥåǥޥåʸʸ + +@item $' +ǸΥѥޥåǥޥåʸθ³ʸ + +@item $+ +ǸθѥǥޥåǸγ + +@item $1@dots{}$9 +Ǹѥޥånܤγ̤˥ޥåͤǼ롥 +̤ʤ@code{nil}äƤ롥 + +@item $~ +ǸΥޥå˴ؤåȤ@code{$&} +@samp{$1@dots{}$9}ͤѲ롥 + +@item $= +ѿͤ@code{nil}ǤʤѥޥåʸӤǥե٥ +Ȥʸʸ̤ʤǥեȤ@code{nil}(̤) + +@item $/ +ϥ쥳ɥѥ졼եʸФ@code{each}Ԥʤ +ʬʸꤹ롥$/˶ʸ(@code{""})ꤹñ̤ +ϤԤʤ@code{nil}ꤹΤ٤ɤ߹ࡥ@code{$/}ˤ +ɽϻȤʤǥեȤ@samp{"\n"} + +@item $\ +ϥ쥳ɥѥ졼ѿʸꤹ@code{write} +@code{print}٤˺ǸˤʸղäƽϤ롥ǥեȤ +@code{nil} (ʤˤɲäʤ) + +@item $, +@code{Array:join}ΥǥեȤζڤʸ@code{print}γưδ +˽Ϥʸ + +@item $; +@code{String:split}ΥǥեȤζڤʸ + +@item $. +Ǹɤϥեιֹ桥 + +@item $< +(ʤɸ)ǹ벾ۥե롥Ĥޤ@code{gets} +@code{$<.gets}Ʊ̣Ǥ롥@code{$<.file}Ǹɤ߹Υե +륪֥Ȥ@code{$<.filename}ǤΥե̾롥(Ф +: @code{<}ϥϸ) + +@item $> +@code{print}@code{printf}ΥǥեȤν补ͤ +@code{$stdout}@samp{-i}ץꤷˤɤ߹߸Ʊ +̾Υե롥(Ф: @code{>}ϥν) + +@item $_ +Ǹ@code{gets}ʤɤɤ߹ʸ + +@item $0 +rubyץȤ̾ѿ@samp{ps(1)}νϤѲ롥 + +@item $* +rubyץȤͿ줿rubyȤФϼƤ롥 + +@item $$ +¹rubyץpid + +@item $? +Ǹ˼¹Ԥҥץstatus + +@item $: +եɤ˸ǥ쥯ȥؤΥѥޤư +ˤϥǥե(ѥ˻ꤹ)˲äơĶѿ +@var{RUBYLIB}ͤrubyư@samp{-I}ץǻꤵ줿ͤɲ +롥(Ф: ϴĶѿ@var{PATH}ζڤʸǤ) + +@item $" +@code{require}ǥɤ줿ե̾ޤ@code{require}Ʊ +ե2ɤʤѤ롥(Ф: prevent files to +be doubly quoted(loaded)) + +@item $ARGF +@code{$<}̾ + +@item $ARGV +@code{$*}̾ + +@item $DEBUG +@code{-d}ե饰ξ() + +@item $FILENAME +ۥե@code{$<}Ǹɤ߹(ågetsɤǤ)ե +̾@code{$<.filename}Ʊ + +@item $KCODE +߽оݤȤƤɤɽʸ@samp{"EUC"} +@samp{"SJIS"}ޤ@samp{"NONE"}ѿͤѹɽΥޥ +ľɽκƥѥ뤬Ԥ롥 + +@item $LOAD_PATH +@code{$:}̾ + +@item $stdin +ɸ + +@item $stdout +ɸ + +@item $stderr +ɸ२顼 + +@item $VERBOSE +@code{-v}ե饰ξ() + +@item TRUE +@itemx FALSE +줾쿿ͤɽ(@code{TRUE}ͤt@code{FALSE}ͤ@code{nil}) +ȽǤ@code{nil}ʳƤͤȤȽǤ뤿ᡤ +@code{TRUE}ͤɽŪʿͤȤʾΰ̣ʤäơ +åɤͤǤȤȤȡ줬@code{TRUE}֤Ȥ +Ȥϸ̩ˤƱǤϤʤ(ҸŪѤåɤͤȤ +@code{TRUE}֤褦ˤϤʤäƤ뤬)Ĥޤ + +@example +if some.method() then @dots{} else @dots{} end +@end example + + + +@example +if some.method() == TRUE then @dots{} else @dots{} end +@end example + +ϴˤƱǤϤʤ@code{FALSE}˴ؤƤϡΤ褦 +ʤ + +@item STDIN +ɸ($stdinν) +@item STDOUT +ɸ($stdoutν) +@item STDERR +ɸ२顼($stderrν) + +@item ENV +Ķѿ˥ϢʸȤͿбĶ +ѿͤ롥Ķѿ¸ߤʤ@code{nil}֤롥 + +@item VERSION +rubyΥСʸ +@end table + +@node Ȥ߹ߥ饹ȥ⥸塼, CȤΥե, Ȥ߹ѿ, Top +@comment node-name, next, previous, up +@chapter Ȥ߹ߥ饹ȥ⥸塼 + +@menu +饹 +* Array:: +* Bignum:: +* Class:: +* Dir:: +* File:: +* Fixnum:: +* Float:: +* Hash:: +* Integer:: +* IO:: +* Kernel:: +* Module:: +* Nil:: +* Numeric:: +* Object:: +* Proc:: +* Range:: +* Regexp:: +* String:: +* Struct:: +* Time:: + +⥸塼 + +* Comparable:: +* Enumerable:: +* Etc:: +* FileTest:: +* GC:: +* Math:: +* Process:: +@end menu + +@node Array, Bignum, Ȥ߹ߥ饹ȥ⥸塼, Ȥ߹ߥ饹ȥ⥸塼 +@comment node-name, next, previous, up +@section Array + +źȤΥ饹Ǥ롥ϰŪˤ``[@dots{}]'' +Ԥʤ롥 + +SuperClass: Object + +Included Modules: Enumerable + +Methods: + +@ftable @code +@item self[@var{nth}] +@itemx self[@var{start}..@var{end}] +@itemx self[@var{start}, @var{length}] + +Ǥ˥롥ǽηǤ@var{nth}ܤǤ +2ܤηǤ@var{start}ܤǤ@var{end}ܤǤޤ +ʬ֤3ܤηǤ@var{start}ܤ@var{length}Ĥ +ޤʬ֤ + +@item self[@var{nth}] = @var{val} +@itemx self[@var{start}..@var{end}] = @var{val} +@itemx self[@var{start}, @var{length}] = @var{val} + +Ǥѹ롥ǽηǤ@var{nth}ܤǤ +@var{val}ѹ롥2ܤη@var{start}ܤǤ@var{end} +ܤǤޤǤ@var{val}ѹ롥3ܤηǤ@var{start}ܤ +@var{length}ĤǤ@var{val}ѹ롥 + +2ܡ3ܤηǤ@var{val}ǤʤФʤʤ + + + +@example +ary = [1, 2, 3, 4, 5] +ary[0..2] = [0, 0] # Ƥ [0, 0, 4, 5] +ary[1, 0] = [7] # Ƥ [0, 7, 0, 6, 5] +@end example + +@item self + @var{other} + +Ϣ롥@code{self}@var{other}ξƤҤ +֤ + +@item self * @var{times} + +η֤ + +@item self - @var{other} + +κ黻@code{self}@var{other}ǤƤο +֤ʣǤ1٤롥 + +@item self * @var{other} + +ѱ黻ξ˴ޤޤǤʤ뿷֤ +ʣǤ1٤롥 + +@item self | @var{other} + +±黻ξˤ줫˴ޤޤǤƴޤ +֤ʣǤ1٤롥 + +@item self << @var{obj} + +objɲä롥@code{self}֤Τ@code{C++}ŪϢǤ +롥 + +@item assoc(@var{key}) + +Ϣۥꥹ(2ǤǤȤ)1Ǥ@var{key} + (@code{==}Ӥ)֤ + +@item clear + +礭0ˤ롥 + +@item delete(@var{val}) + +@var{val}ȰפǤ롥 + +@item delete_if @{@dots{}@} + +Ǥ륤ƥ졼֥åɾͤλбǤ +롥 + +@item each @{@dots{}@} + +γǤͿ륤ƥ졼 + +@item fill(@var{val}) +@itemx fill(@var{val}, @var{start}[, @var{length}]) +@itemx fill(@var{val}, @var{start}..@var{end}) + +(λꤵ줿ʬ)Ǥͤ@var{val}ꤹ롥2֤η +@var{length}ά줿νޤǤĹȤ롥ꤵ줿ʬ +ϰϤۤϼưŪ˳ĥ롥 + +@item index(@var{val}) + +@var{val}ǽǤΥǥå֤Ǥ¸ߤ +ʤ@code{nil}֤ + +@item indexes(@var{ary}) +@itemx indexes(@var{index_}1,@dots{}, @var{index_n}) + +1ܤηǤȤƼơǤǥå +Ǥޤ֤2ܤηǤϳưͤǥåȤ +Ǥޤ֤ + +@item join([@var{sep}]) + +ǤϢ뤷ʸ֤ǤʸѴ졤֤ +@var{sep}Ϣ뤵롥@var{sep}ά줿ˤϥƥѿ +@code{$,}ͤѤ롥 + +@item length +@itemx size + +Ĺ(ǿ)֤ + +@item pack(@var{template}) + +Ƥ@var{template}ʸˤäơ1Ĥʸ˥ѥå롥 +ѥåʸ֤ƥץ졼ȤϷʸȤĹ(ά +1)¤٤ΤǤ롥ĹȤ@code{*}ꤵ줿ϡֻĤΥǡ +ơפĹɽ + +ʸϰʲΤΤ롥 + +@display +a ASCIIʸ(nullʸͤ) +A ASCIIʸ(ڡͤ) +b ӥåȥȥ(̥ӥåȤ̥ӥå) +B ӥåȥȥ(̥ӥåȤ鲼̥ӥå) +h 16ʸ(̥˥֥뤬) +H 16ʸ(̥˥֥뤬) +c char +C unsigned char +s sort +S unsigned sort +i int +I unsigned int +l long +L unsigned int +n ͥåȥХȥshort +N ͥåȥХȥlong +f ñư(¸) +d ư(¸) +x ʥХ +X 1Хȸ +@@ а֤ؤΰư +@end display + +@item pop + +Ǥơ֤ + +@item push(@var{obj}) + +@var{obj}ɲä롥 + +@item rassoc(@var{value}) + +Ϣۥꥹ(2ǤǤȤ)2Ǥ@var{value} +(@code{==}Ӥ)֤ + +@item shift + +ƬǤơ֤ + +@item sort +@itemx sort @{|@var{a}, @var{b}|@dots{}@} + +ƤȤ롥ƥ졼ȤƸƤӽФ줿ϥ֥åɾ +ͤǤ羮ꤹ롥礭0 +顥̾ΥåɤȤƸƤӽФ줿ϳǤ@code{<=>}Ӥ롥 + +@item to_a + +ʬȤ֤оΤѰդƤåɤǤޤʤ + +@item unshift(@var{obj}) + +@var{obj}Ƭɲä롥 +@end ftable + +Single Methods: + +@ftable @code +@item Array[@var{item}@dots{}] + +ǤȤ롥 +@end ftable + +@xref{Object} +@xref{Enumerable} + +@node Bignum, Class, Array, Ȥ߹ߥ饹ȥ⥸塼 +@comment node-name, next, previous, up +@section Bignum + +̵¿ĹΥ饹黻η̤@code{Fixnum}ϰǤ +ˤϼưŪ˥饹@code{Fixnum}Ѵ롥Ūrubyץ +Ǥ@code{Fixnum}@code{Bignum}ѴϰۤΤ˹ԤΤǡ +ɬפ̵@code{Float}Ȥκ˴ؤƤϡ@code{Bignum} +@code{Float}genericity⤤Τˤؤ餺@code{Bignum} +礭ͤɽǤΤǡѴ˷ǽ롥 + +SuperClass: Integer + +Methods: + +@ftable @code +@item self + @var{other} +@itemx self - @var{other} +@itemx self * @var{other} +@itemx self / @var{other} +@itemx self % @var{other} +@itemx self ** @var{other} + +ѱ黻줾¡ѡ;Ѿ֤ + +@item ~ self +@itemx self | @var{other} +@itemx self & @var{other} +@itemx self ^ @var{other} + +ӥåȱ黻줾ӥåȿž¡ѡ¾Ū¤֤ + +@item self << @var{bits} +@itemx self >> @var{bits} + +եȱ黻줾@var{bits}ӥåȤ˥ӥåȥեȤԤʤ + +@item divmod(@var{other}) + +Ⱦ;ʤ֤ +@end ftable + +@xref{Integer} + +@node Class, Comparable, Bignum, Ȥ߹ߥ饹ȥ⥸塼 +@comment node-name, next, previous, up +@section Class + +饹Υ饹긷̩ȥ饹ðۥåɤѾ뤿 +ˡ줾饹ȸƤФ̾Τʤ饹饹Ȥƻ +@code{Class}ϤΥ饹Υ饹Ǥ(ʬä?)β +⤬ǤʤƤ⡤rubyȤȤ˲λپʤ饹ˤðۥ +åɤǤȡѡ饹줿ðۥåɤϤΥ +֥饹ǤͭǤΤнʬǤ롥 + +SuperClass: Module + +Private Methods: + +@ftable @code +@item attr(@var{name}[, @var{public}]) + +Υ饹ΥФ@var{name}ǻꤵ°롥 +ܤ@code{Module}@code{attr}åɤιȤΤȡ +@end ftable + +Methods: + +@ftable @code +@item new(@dots{}) + +饹Υ롥¿ξ礳Υåɤϥ֥饹 +ۥåɤˤäƥС饤ɤ졤饹ˤäưۤʤ롥 +@end ftable + +@xref{Module} + +@node Comparable, Dir, Class, Ȥ߹ߥ饹ȥ⥸塼 +@comment node-name, next, previous, up +@section Comparable + +ӱ黻饹Τ@code{Mixin}Υ⥸塼롼 +뤳Ȥˤäơ@code{<=>}黻Ҥ¾α黻ҤϤ +ѤǤ롥 + +Methods: + +@ftable @code +@item self == @var{other} + +@code{self}@var{other}֤ + +@item self > other + +@code{self}@var{other}礭֤ + +@item self >= @var{other} + +@code{self}@var{other}礭֤ + +@item self < @var{other} + +@code{self}@var{other}꾮֤ + +@item self <= @var{other} + +@code{self}@var{other}꾮֤ + +@item between?(min, max) + +@code{self}@var{min}@var{max}ϰˤ֤ +@end ftable + +@node Dir, Enumerable, Comparable, Ȥ߹ߥ饹ȥ⥸塼 +@comment node-name, next, previous, up +@section Dir + +ǥ쥯ȥǤ֤ǥ쥯ȥꥹȥΤΥ饹 + +SuperClass: Object + +Included Modules: Enumerable + +Methods: + +@ftable @code + +@item close + +ǥ쥯ȥꥹȥ롥ʸ㳰ȯ롥 + +@item each @{|@var{item}|@dots{}@} + +ǥ쥯ȥγǤͿ륤ƥ졼 + +@item getwd +@itemx pwd + +ȥǥ쥯ȥ֤ + +@item rewind + +ǥ쥯ȥꥹȥƬ˥ꥻåȤ롥 + +@item seek(@var{pos}) + +ǥ쥯ȥꥹȥΰ֤@var{pos}ꤹ롥 + +@item tell + +ǥ쥯ȥꥹȥθߤΰ֤֤ + +Single Methods: + +@item self[@var{pat}] +@itemx glob(@var{pat}) + +ʸ@var{pat}@samp{sh}Υ磻ɥɤȤŸ̤ʸ +Ȥ֤ϰʲ̤Ǥ롥 + +@ftable @samp +@item * +Ǥդʸ(ʸޤ)Ȱ +@item ? +Ǥդ1ʸȰ +@item [ ] +[]Τ줫1ʸȰ +@item {@dots{}} +{}(ޤǶڤ줿)줫ʸȰ +@end ftable + +@item chdir(@var{path}) + +ȥǥ쥯ȥ@var{path}ѹ롥 + +@item chroot(@var{path}) + +ץΥ롼ȥǥ쥯ȥѹ롤Ʊ̾ΥƥॳƱƯ +롥ϼ¸uidѥ桼Ǥ¤Ƥ롥 +롼ȥǥ쥯ȥ᤹(롼ȥǥ쥯ȥѹ)ˡ +Ƥʤ + +@item mkdir(@var{path}[, @var{mode}]) + +@var{mode}ǻꤵ줿⡼ɤĥǥ쥯ȥ@var{path}롥⡼ +ɤ@code{umask}ˤäƽ롥@var{mode}Υǥեͤ0777 + +@item open(@var{path}) + +@var{path}Фǥ쥯ȥꥹȥץ롥 + +@item rmdir(@var{path}) + +@var{path}ǻꤵ줿ǥ쥯ȥ롥ǥ쥯ȥ϶Ǥɬ +פ롥 +@end ftable + +@xref{Object} +@xref{Enumerable} + +@node Enumerable, File, Dir, Ȥ߹ߥ饹ȥ⥸塼 +@comment node-name, next, previous, up +@section Enumerable + +ǤФ뷫֤Ԥʤ饹Τ@code{Mixin}Υ⥸塼 +롼ɤ뤿ˤϡå@code{each}ɬפ롥 + +Methods: + +@ftable @code + +@item collect @{|@var{item}|@dots{}@} + +ǤФƥ֥åɾ̤ƴޤ֤ + +@item find @{|@var{item}|@dots{}@} + +ǤФƥ֥åɾͤˤʤäǽǤ֤ + +@item find_all @{|@var{item}|@dots{}@} + +ǤФƥ֥åɾͤǤäǤƴޤ֤ + +@item grep(pattern) +@itemx grep(pattern) @{|@var{item}|@dots{}@} + +@code{ =~ @var{pattern}}ΩƤǤޤ֤ +졼ȤѤ줿Ͼ嵭ξΩǤФƥ֥å +Ԥ롥 + +@item member?(@var{val}) + +@var{val}@code{==}δطˤǤĻ֤ + +@item index(@var{val}) + +@var{val}@code{==}δطˤ륪֥Ȥܤ˸줿֤ +ֺǽǤ0ˤʤ롥Ǥ¸ߤʤˤ@code{nil}֤ +Τʤ饹ФƤϤޤ̣ʤ + +@item length + +Ǥο֤ + +@item min + +ǾǤ֤ƤǤߤ@code{<=>}åɤӤǤ뤳 +ȤꤷƤ롥 + +@item max + +Ǥ֤Ǥ@code{<=>}åɤӤǤ뤳Ȥꤷ +롥 + +@item reverse + +ƤǤս¤٤֤ + +@item sort +@itemx sort @{|@var{a}, @var{b}|@dots{}@} + +ƤǤȤ֤ +@end ftable + +@node File, FileTest, Enumerable, Ȥ߹ߥ饹ȥ⥸塼 +@comment node-name, next, previous, up +@section File + +ե륢ΤΥ饹å@code{open}롥ޤ +Υ饹ðۥåɤȤ@code{test}Υեƥȱ黻 +åɤƤ(@code{FileTest}⥸塼Υåɷ) + +SuperClass: IO + +Methods: + +@ftable @code + +@item atime + +եκǽ֤ + +@item ctime + +եκǽơѹ֤ + +@item chmod(@var{mode}) + +եΥѡߥåѹ(cf @samp{chmod(2)}) + +@item chown(@var{owner}, @var{group}) + +եνͭԤȥ롼פѹ(cf @samp{chown(2)})@code{nil} +@code{-1}ꤹ뤳ȤˤäƽͭԤ䥰롼פߤΤޤѤʤ +ȤǤ롥 + +@item eof +@itemx eof? + +եνüã˿֤ + +@item lstat + +ե˴ؤ@code{Stat}¤Τ֤@code{lstat}ϥե뤬 +ܥåǤХΤΤ˴ؤ@code{Stat}¤Τ֤ +¤ΤƤˤĤƤ@code{stat}ȤΤȡ + +@item mtime + +եκǽ֤ + +@item rewind + +եΥեݥΰ֤Ƭ˰ư롥 + +@item path + +եΥѥ֤̾ + +@item seek(@var{offset}, @var{ptrname}) + +եΥեݥΰ֤@var{offset}˰ư롥 +@var{ptrname}012Τ줫Ǥäơ줾եƬ +֡եνüФ + +@item stat + +ե˴ؤ@code{Stat}¤Τ֤(@xref{Struct}) + +@display +struct stat + dev # ե¸ߤǥХ + ino # եi-nodeֹ + mode # ⡼ + nlink # ϡɥο + uid # ͭԤΥ桼ID + gid # ͭԤΥ롼ID + rdev # ǥХID(ڥեΤ) + size # ե륵(byte) + blksize # ե륷ƥˤŬڤʥ֥å + blocks # ֥å + atime # ǽ + mtime # ǽ + ctime # ǽѹ +end +@end display + +ܺ٤@samp{stat(2)}ȤΤȡƥƤ +@code{Stat}¤Τ˳Фʤ0ꤵƤ롥 + +@item tell + +եθߤΥեݥΰ֤֤ + +@item truncate(@var{length}) + +եڤΤƤƺ@var{length}ХȤˤ롥ե +@code{write}⡼ɤǥץƤʤФʤʤ + +Single Methods: + +@item atime(@var{filename}) + +@var{filename}κǽ֤ + +@item basename(@var{filename}[, @var{suffix}]) + +@var{filename}κǸǤ֤@var{suffix}Ϳ줿ϡ +ĥҤ + +@example +basename("ruby/ruby.c") + @result{} "ruby.c" +basename("ruby/ruby.c", ".c") + @result{} "ruby" +@end example + +@item ctime(@var{filename}) + +@var{filename}κǽơѹ֤ + +@item chmod(@var{mode}, @var{path}, @var{file}@dots{}) + +եΥѡߥåѹ(cf @samp{chmod(2)})ѹե +֤ + +@item chown(@var{owner}, @var{group}, @var{file}@dots{}) + +եνͭԤȥ롼פѹ(cf @samp{chown(2)})@code{nil} +@code{-1}ꤹ뤳ȤˤäƽͭԤ䥰롼פߤΤޤѤʤ +ȤǤ롥ѹե֤ + +@item dirname(@var{fname}) + +ե̾κǸǰʳ֤ + +@item expand_path(@var{path}) + +ե̾ХѥŸ롥@samp{~}ϥۡǥ쥯ȥŸ +롥 + +@example +expand_file_name("..") + @result{} "/home/matz/work" +expand_file_name("~") + @result{} "/home/matz" +expand_file_name("~matz") + @result{} "/home/matz" +@end example + +@item link(@var{old}, @var{new}) + +@var{old}ؤΥϡɥ@var{new}롥@samp{link(2)}Ʊ +롥 + +@item mtime(@var{filename}) + +@var{filename}κǽ֤ + +@item readlink(@var{path}) + +ܥå@var{path}ƤʸȤ֤ + +@item rename(@var{from}, @var{to}) + +ե̾@var{from}@var{to}ѹ롥@samp{rename(2)}ȡ +@var{to}Ȥ̾Υե뤬¸ߤˤϤޤΥե뤬 +롥 + +@item stat(@var{filename}) + +@var{filename}Υե@code{Stat}¤Τ֤ + +@item symlink(@var{old}, @var{new}) + +@var{old}ؤΥܥå@var{new}롥 + +@item truncate(@var{path}, @var{length}) + +@var{path}ǻꤵ줿եڤΤƤƺ@var{length}ХȤˤ롥 + +@item type(@var{filename}) + +@var{filename}ΥեΥפɽʸ֤ʸ +@code{"file"}@code{"directory"}@code{"characterSpecial"} +@code{"blockSpecial"}@code{"fifo"}@code{"link"}@code{"socket"} +Τ줫ĤǤ롥 + +@item unlink(@var{file}@dots{}) + +ե롥ǥ쥯ȥκˤ@code{Dir.rmdir}Ȥȡ + +@item utime(@var{atime}, @var{mtime}, @var{file}@dots{}) + +եΥ@var{atime}ˡ@var{mtime}ꤹ롥 +@var{atime}@var{mtime}Ͽޤ@code{Time}饹ΥǤ +Фʤʤ +@end ftable + +ʳ@code{FileTest}⥸塼ΥåɤðۥåɤȤƻġ + +@xref{IO} + +@node FileTest, Fixnum, File, Ȥ߹ߥ饹ȥ⥸塼 +@comment node-name, next, previous, up +@section FileTest + +եƥѥåɤ⥸塼롥롼ɤѤ뤳 +Ǥ롥Υ⥸塼Υåɤ˥ե̾Ȥ@code{"&"}ꤹ +ȡľΥեؤ@samp{stat(2)}η̤Ѥ롥 + +Methods: +Single Methods: + +@ftable @code +@item blockdev?(@var{filename}) + +@var{filename}Υե뤬֥åڥեǤ֤ + +@item chardev?(@var{filename}) + +@var{filename}Υե뤬饯ڥեǤ + + +@item executable?(@var{filename}) + +@var{filename}Υե뤬¹Բǽλ֤ + +@item executable_real?(@var{filename}) + +@var{filename}Υե뤬uid/gidǼ¹Բǽλ֤ + +@item exists?(@var{filename}) + +@var{filename}Υե뤬¸ߤ֤ + +@item grpowned?(@var{filename}) + +@var{filename}Υեgid¸롼פgidƱ֤ + +@item directory?(@var{filename}) + +@var{filename}ǥ쥯ȥλ֤ + +@item file?(@var{filename}) + +@var{filename}Υե뤬̾եλ֤ + +@item link?(@var{filename}) + +@var{filename}Υե뤬ܥåǤ֤ + +@item pipe?(@var{filename}) + +@var{filename}Υե뤬̾Ĥѥ(@code{FIFO})Ǥ + + +@item socket?(@var{filename}) + +@var{filename}Υե뤬åȤǤ֤ + +@item owned?(@var{filename}) + +@var{filename}Υե¸桼ͭƤ֤ + +@item readable?(@var{filename}) + +@var{filename}ΥեɤߤȤǽλ֤ + +@item readable_real?(@var{filename}) + +@var{filename}Υեuid/gidɤߤȤǽλ֤ + +@item setuid?(@var{filename}) + +@var{filename}ΥեsetuidӥåȤåȤƤ֤ + +@item setgid?(@var{filename}) + +@var{filename}ΥեsetgidӥåȤåȤƤ֤ + +@item size(@var{filename}) + +@var{filename}Υե뤬¸ߤե礭֤¸ߤ +@code{nil}֤ + +@item sticky?(@var{filename}) + +@var{filename}ΥեstickyӥåȤåȤƤ֤ + +@item symlink?(@var{filename}) + +@var{filename}ܥåǤ֤ + +@item writable?(@var{filename}) + +@var{filename}Υե뤬uid/gidǽ߲ǽλ֤ + +@item writable_real?(@var{filename}) + +@var{filename}Υե뤬߲ǽλ֤ + +@item zero?(@var{filename}) + +@var{filename}Υե뤬¸ߤ礭0Ǥ֤ +@end ftable + +@node Fixnum, Float, FileTest, Ȥ߹ߥ饹ȥ⥸塼 +@comment node-name, next, previous, up +@section Fixnum + +31bit(ޥlongĹ-1 bit)Υ饹builtin classǤ롥 +饹pointer¨ͤǤ뤿call by valueǸƤӽФħŪ +Ǥ(¾Υ饹call by reference)黻η̤31bitۤ +ϼưŪ@code{Bignum}(̵¿Ĺ)˳ĥ롥 + +ƥ졼@code{upto}@code{downto}@code{step}Ϸ֤Τ +졤̤@code{Range}饹Ѥ®Ǥ롥 + +SuperClass: Integer + +Methods: + +@ftable @code +@item self + @var{other} +@itemx self - @var{other} +@itemx self * @var{other} +@itemx self / @var{other} +@itemx self % @var{other} +@itemx self ** @var{other} + +ѱ黻줾¡ѡ;Ѿ֤ + +@item ~ self +@itemx self | @var{other} +@itemx self & @var{other} +@itemx self ^ @var{other} + +ӥåȱ黻줾ӥåȿž¡ѡ¾Ū¤֤ + +@item self << @var{bits} +@itemx self >> @var{bits} + +եȱ黻줾@var{bits}ӥåȤ˥ӥåȥեȤԤʤ + +@item downto(@var{min}) @{@dots{}@} + +ƥ졼@code{self}@var{min}ޤDz˷֤ + +@item id2name + +ͤIDȤߤʤơʸ֤ʸ¸ߤ +@code{nil}֤ + +@item step(@var{max}, @var{step}) @{@dots{}@} + +ƥ졼@code{self}@var{max}ޤ@var{step}Ѳʤ顤 +֤ + +@item to_f + +@code{self}@code{Float}ѴΤ֤ + +@item to_i + +@code{self}Τޤ֤ + +@item upto(@var{max}) @{@dots{}@} + +ƥ졼@code{self}@var{max}ޤǷ֤ +@end ftable + +@xref{Integer} + +@node Float, GC, Fixnum, Ȥ߹ߥ饹ȥ⥸塼 +@comment node-name, next, previous, up +@section Float + +ưΥ饹 + +SuperClass: Numeric + +Methods: + +@ftable @code +@item self + @var{other} +@itemx self - @var{other} +@itemx self * @var{other} +@itemx self / @var{other} +@itemx self % @var{other} +@itemx self ** @var{other} + +ѱ黻줾¡ѡ;Ѿ֤ + +@item self == @var{other} +@itemx self > @var{other} + +ӱ黻 + +@item coerce(@var{num}) + +@var{num}@code{Float}Ѵ롥@code{Float} +¾ο@code{Fixnum}@code{Bignum}Ǥ롥 + +@item to_f + +@code{self}Τޤ֤ + +@item to_i + +@code{self}Ѵ̤֤ +@end ftable + +Single Methods: + +@ftable @code +@item new(@var{float}) + +@var{float}ƱͤĿ@code{Float}֥Ȥ֤ +@end ftable + +@xref{Numeric} + +@node GC, Hash, Float, Ȥ߹ߥ饹ȥ⥸塼 +@comment node-name, next, previous, up +@section GC + +RubyȤ߹ߤgarbage collectorԤʤΥ⥸塼롥Υ +塼ΥåɤѤ뤳ȤˤäơŪGCߤꡤGCε +륿ߥ椷Ǥ롥 + +Methods: + +@ftable @code +@item garbage_collect + +GCϤ롥@code{GC.start}Ʊ +@end ftable + +Single Methods: + +@ftable @code +@item disable + +GCػߤ롥 + +@item enable + +GCĤ롥 + +@item start + +GCϤ롥 +@end ftable + +@node Hash, Integer, GC, Ȥ߹ߥ饹ȥ⥸塼 +@comment node-name, next, previous, up +@section Hash + +Ϣ뤤ϥϥåɽǤդΥ֥ȤźȤǤΥ +Ǥ롥Ϣ֥ȤϰŪˤϢ + +@display +{a=>b,@dots{}} +@end display + +ǹԤʤ롥 + +ȤͿ֥ȤƤѲå@code{hash}֤ +ͤѤ@code{Hash}ưʤ(ͤФʤʤ) +ˤä@code{hash}ͤѲ륯饹(Ȥ@code{Array}, +@code{Hash}ʤ)Υϥ˸ʤƤ +@code{hash}ͤ˱ƶ륪֥ȤΤʸ̤˰ +롥ʸȤͿȡʸԡԡԲĤ +ꤷǡȤƻѤ롥äơʸƤ⥭ʸ +Ѳʤ@code{each}, @code{each_key}, @code{keys}ʤɤΥ +ɤȤʸ֤ʸϹǤʤ(㳰ȯ) + +SuperClass: Object + +Included Modules: Enumerable + +Methods: + +@ftable @code +@item self [@var{key}] + +@var{key}Ȥ֤ͤ + +@item self [@var{key}]= @var{value} + +@var{key}Ȥơ@var{value}Ǽ롥@var{value}Ȥ +@code{nil}ꤹȤ@var{key}ФܤκȤʤ롥Ĥޤꡤ +@code{Hash}ͤȤ@code{nil}ĤȤϤǤʤ + +@item clear + +Ϣˤ롥 + +@item delete(@var{key}) + +@var{key}ȤȤ롥 + +@item delete_if @{|@var{item}|@dots{}@} + +Ǥ륤ƥ졼@code{[key,value]}ȤͿơ֥ +ɾͤλܤ롥 + +@item each @{|@var{key}, @var{value}|@dots{}@} +@itemx each_pair @{|@var{key}, @var{value}|@dots{}@} + +@code{[key,value]}ʤ2ǤͿ륤ƥ졼 + +@item each_key @{|@var{key}|@dots{}@} + +ƤkeyФƷ֤ƥ졼 + +@item each_value @{|@var{value}|@dots{}@} + +ƤvalueФƷ֤ƥ졼 + +@item has_key?(@var{key}) + +@var{key}ȤȤϢ¸ߤ֤ + +@item has_value?(@var{value}) + +@var{value}ͤȤȤϢ¸ߤ֤ + +@item indexes(@var{ary}) +@itemx indexes(@var{key_}1,@dots{}, @var{key_n}) + +1ܤηǤȤƼơǤȤǤޤ +֤2ܤηǤϳưͤȤǤޤ֤ + +@item keys + +Ϣ¸ߤ륭Ƥޤ֤ +@item length +@itemx size + +ϢǤο֤ + +@item shift + +ϢǤļФ()@code{[key,value]}ʤ2 +֤ + +@item to_a + +Ϣ@code{key-value}2ǤǤȤ֤ + +@item values + +Ϣ¸ߤƤޤ֤ +@end ftable + +Single Methods: + +@ftable @code +@item Hash[@var{key}, @var{value}@dots{}] + +ܤΰ@var{key}ܤΰ@var{value}ȤϢ +롥 + +@item new + +()Ϣ֥Ȥ֤ +@end ftable + +@xref{Object} +@xref{Enumerable} + +@node Integer, IO, Hash, Ȥ߹ߥ饹ȥ⥸塼 +@comment node-name, next, previous, up +@section Integer + +饹ºݤϤ礭ˤä@code{Fixnum}@code{Bignum} +ĤΥ֥饹Ǽ¸Ƥ롥@code{Integer}ϤΥѡ饹 +Ȥʤݥ饹Ǥ롥RubyǤϤۤȤɤξ硤@code{Fixnum} +@code{Bignum}ζ̤ɬפʤߤѴϼưŪ˹Ԥʤ롥 +ӥåȤߤʤˤϡ̵¤Ĺĥӥåȹͤƹʤ + +SuperClass: Numeric + +Methods: + +@ftable @code +@item self[@var{idx}] + +@var{idx}ӥåܤåȤƤ1åȤƤʤ0 +֤ + +@item chr + +οɤȤʸޤ1ʸʸ֤̤Ĺ1ʾ +ʸˤĤơδطΩ롥 + +@example +str[0].chr == str[0,1] +@end example + +ʸϰ(0@dots{}255)ˤʤ㳰ȯ롥 + +@item integer? + +Ĥ֤ +@end ftable + +@xref{Numeric} + +@node IO, Kernel, Integer, Ȥ߹ߥ饹ȥ⥸塼 +@comment node-name, next, previous, up +@section IO + +ϤΤδܥ饹 + +SuperClass: Object + +Included Modules: Enumerable + +Methods: + +@ftable @code +@item self << @var{object} + +@var{object}Ϥ롥@var{object}ʸǤʤˤϥå +@code{to_s}ѤʸѴ롥@code{self}ͤȤΤǡ +@code{C++}Τ褦@code{<<}ϢȤ롥 + + + +@example +$stdout << 1 << " is a " << Fixnum << "\n" +@end example + +@item close + +ϥݡȤ롥ʸΤΥ֥ȤФ +顼ˤʤ롥 + +@item closed? + +ݡȤƤ֤ + +@item each @{|@var{line}|@dots{}@} +@item each_line @{|@var{line}|@dots{}@} + +Ԥɤ߹Ǥ뤿Υƥ졼Ԥζڤϥƥѿ +@code{$/}ˤäѹǤ롥ɤ߹ʸϥƥѿ@code{$_} +⥻åȤ롥 + +@itemx each_byte @{|@var{ch}|@dots{}@} + +ʸɤ߹Ǥ뤿Υƥ졼ʸʸɤɽ +@code{Fixnum}Ǥ롥 + +@item fileno +@itemx to_i + +@code{IO}֥ȤȤäƤեǥץ(@code{Fixnum}) +֤ + +@item flush + +Хåեեå夹롥 + +@item getc + +ɤ߹ǡɤ߹ߤˤϤʸ֤եν +ãˤ@code{nil}֤ͥå@code{getc} +@code{$stdin.getc}Ʊ̣Ǥ롥 + +@item gets + +ɤ߹ǡɤ߹ߤˤϤʸ֤եν +ãˤ@code{nil}֤ + +@item isatty +@itemx tty? + +ϥݡȤttyǤ֤ + +@item print(@var{arg}@dots{}) + +˽Ϥ롥褬@code{$>}Ǥʤ쥷ФǤʳ +@code{Kernel}饹@code{print}åɤƱư롥 + +@item printf(@var{format}, @var{arg}@dots{}) + +@code{C}@code{printf()}Ʊ@var{format}˽ʸ +쥷Ф˽Ϥ롥 + +@item puts(@var{obj}) + +@var{obj}Ϥ롥@code{self << obj}Ʊ̣Ǥ롥 + +@item read([@var{length}]) + +@var{length}Хɤ߹ǡʸ֤@var{length}ά +ˤϡ@code{EOF}ޤǤƤΥǡɤ߹ࡥ + +@item readlines + +եɤ߹dzƹԤǤȤƤ֤ + +@item sync + +ߤνƱ⡼ɤ֤ͤƱ⡼ɤλϽϴؿθƽ +˥Хåեեå夵롥 + +@item sync= @var{newstate} + +Ʊ⡼ɤꤹ롥 + +@item sysread(@var{length}) + +@samp{stdio}ͳ@samp{read(2)}ѤϤԤʤϤ줿 +ǡޤʸ֤եνãˤ@code{nil} +@samp{read(2)}ˤɬ@var{length}ХȤʸɤ߹ +櫓ǤϤʤ@code{gets}@code{getc}ʤ@samp{stdio}ͳ +åɤȺѤ뤳ȤϥХåեʤɤǻפư뤳 +롥 + +@item syswrite(@var{str}) + +@samp{stdio}ͳˡ@samp{write(2)}ѤƽϤԤʤΥ +åɤϥХåեʤ@samp{stdio}Ƥ뤳ȤϰڹԤʤʤ +@code{syswrite}ϼºݤ˽Хȿ֤@code{print} +@code{printf}@code{syswrite}ѤΤϿ侩Ǥʤ + +@item write(@var{str}) + +@var{str}Ϥ롥ϤХȿ֤ +@end ftable + +@xref{Object} +@xref{Enumerable} + +@node Kernel, Math, IO, Ȥ߹ߥ饹ȥ⥸塼 +@comment node-name, next, previous, up +@section Kernel + +ƤΥ饹δ쥯饹RubyȤ߹ߤƤδؿåɤϤΥ饹 +Ƥ롥ؿåɤˤĤƤϡִؿפιܤȤΤȡ + +SuperClass: ʤ + +Methods: + +@ftable @code +@item self == @var{other} +@itemx equal?(@var{other}) + +֥ȤΰȽꡥ쥷ФȰΰפ֤ +@code{Kernel}饹ǤΥ֥ȤƱλ֤ +@code{==}åɤϳƥ֥Ȥ˱ƺɬפ롥 +@code{==}åɤˤϡ@code{hash}åɤ⤽˹碌 +ƺɬפ롥 + +equal?åɤ@code{==}åɤ̾ǡ@code{==}Ǥ +֥ȤƱȽԤʤѤ롥ä@code{equal?} +åɤϥ֥饹Ǻ٤ǤϤʤ + +@item self =~ @var{other} + +ޥåǥեȤư@code{==}ƱǤ롥@code{=~} +@code{case}ʸǤӤˤѤ롥 + +@item hash + +֥ȤΥϥå(@code{Fixnum})֤@code{Hash}饹ǥ +Ȥʤ륪֥ȤǼΤѤƤ.@code{A == B}Ω +ɬ@code{A.hash == B.hash}ΩɬפΤǡ@code{==} +ˤɬ⤽˹碌ƺ뤳ȡ + +@item id + +ƥ֥ȤФưդ@code{Fixnum}֤@code{Fixnum}ϼ +ʬȤ֤Τǡ@code{id}פƤƱ֥ȤǤ뤳Ȥ +ڤʤĤޤꡤ@code{obj1.id == obj2.id}ΩƤ⡤ɤ餫 +@code{Fixnum}ǤС@code{obj1}@code{obj2}ƱǤȤϸ¤ +ξ@code{Fixnum}ǤʤȤݾڤǤС2ĤΥ֥ +ȤƱǤ뤳Ȥϳμ¤Ǥ롥 + +@item inspect + +֥Ȥʹ֤ɤʸѴ롥 + +@item nil? + +֥Ȥ@code{nil}Ǥ뤫ɤ@code{Kernel}饹Ǥ +֤@code{Nil}饹ǵ֤褦Ƥ롥 + + +@item type + +֥ȤưŪʷ(饹)֤ + +@example +obj.is_kind_of?(obj.type) +@end example + +ϾΩ롥 + +@item send(@var{symbol}[, @var{args}@dots{}]) + +@var{symbol}ǻꤵåɤ@var{args}ȤȤ˸ƤӽФ + +@end ftable + +@node Math, Module, Kernel, Ȥ߹ߥ饹ȥ⥸塼 +@comment node-name, next, previous, up +@section Math + +ư黻ݡȤ륯饹Math⥸塼ƱΥå +ðۥåɤȤξƤΤǡðۥåɤƤӽФƻ +Ȥȡ饹˥롼ɤƻȤȤȤξǤ롥 + + + +@example +pi = Math.atan2(1, 1) * 4; +include Math +pi2 = atan2(1, 1) +@end example + +Methods: +Single Methods: + +@ftable @code +@item atan2(@var{x}, @var{y}) + +С-ФϰϤ@var{x}/@var{y}ΥȤ֤ + +@item cos(@var{x}) +@itemx sin(@var{x}) +@itemx tan(@var{x}) + +饸ɽ줿@var{x}λѴؿ֤ͤ + +@item exp(@var{x}) + +@var{x}λؿؿ֤ͤ + +@item log(@var{x}) + +@var{x}μп֤ + +@item log10(@var{x}) + +@var{x}ξп֤ + +@item sqrt(@var{x}) + +@var{x}ʿ֤@var{x}ͤǤˤ㳰ȯ롥 + +@item cbrt(@var{x}) + +@var{x}Ω֤ +@end ftable + +@node Module, Nil, Math, Ȥ߹ߥ饹ȥ⥸塼 +@comment node-name, next, previous, up +@section Module + +⥸塼Υ饹 + +SuperClass: Object + +Private Methods: + +@ftable @code +@item attr(@var{name}[, @var{public}]) + +Υ⥸塼롼ɤ饹ΥФ@var{name} +ǻꤵ°ղä°Ф륢åɤ롥 +@code{attr("attr")}ϥ饹˰ʲ˼ɤɲäΤȤۤƱ +Ǥ롥 + +@example +def attr; @@attr; end +@end example + +άǽ2@var{public}ͿơĤͤ@code{nil}Ǥ +ˤϤ°ˤ°åɤѰդ졤ǽˤʤ롥 + +@code{attr("attr", TRUE)}ϥ饹˰ʲΥɤɲäΤȤۤ +ƱǤ롥 + +@example +def attr; @@attr; end +def attr=(val); @@attr = val; end +@end example + +°åɤ뤳Ȥˤäơưѹ +Ǥ롥㤨 + +@example +attr("test", TRUE) +def test=(val) + print("test was ", @@test, "\n") + print("and now is ", @@test = val, "\n") +end +@end example + +Τ褦°ͤɽ褦ʤȤǽǤ롥@var{attr} +åɤǤƤϡǥեȤΥ +ɤʤ +@end ftable + +Methods: + +@ftable @code +@item include(@var{module}@dots{}) + +ǻꤷ⥸塼롼ɤơåɡɲä롥 +饹⥸塼̤Υ⥸塼롼ɤ뤳Ȥˤäơ +줿¿ŷѾ(@code{Mixin})¸Ǥ롥 + +@item module_function(@var{name}@dots{}) + +@var{name}ǻꤵ줿åɤ@samp{module function}˻ꤹ롥 +@samp{Module function}Ȥϥ⥸塼ðۥåɤǤꡤĤΥ⥸塼 +롼ɤ饹privateåɤˤʤ褦ʥåɤλ +Ǥ롥㤨СMath⥸塼δؿ@samp{module function}Ǥ롥 + +@item private(@var{name}@dots{}) + +@var{name}ǻꤵ줿åɤؿǤƤӽФǽˤ롥 +privateåɤǤˤϲ⤷ʤ + +@item public(@var{name}@dots{}) + +@var{name}ǻꤵ줿åɤ̾ǸƤӽФǽˤ롥Ǥ +publicåɤǤˤϲ⤷ʤ + +@example +def foo() 1 end +foo + @result{} 1 +self.foo + @result{} 1 + +def bar() 2 end +private :bar +bar + @result{} 2 +self.bar + @error{} method `bar' not available for "main"(Object) + +Module Baz + def baz() 3 end + module_function :baz +end +Baz.baz + @result{} 3 +include Baz +baz + @result{} 3 +self.baz + @error{} method `baz' not available for "main"(Object) +@end example + +@item to_s + +⥸塼ʸɽǤ⥸塼֤̾ +@end ftable + +@xref{Object} + +@node Nil, Numeric, Module, Ȥ߹ߥ饹ȥ⥸塼 +@comment node-name, next, previous, up +@section Nil + +ɽ֥@code{nil}Υ饹ѿ()@code{nil} +@code{Nil}饹ͣΥǤ롥 + +SuperClass: Kernel + +Methods: + +@ftable @code +@item self + @var{other} + +@var{other}ưʸǤ@var{other} + + +@item nil? + +˿֤ +@end ftable + +@xref{Kernel} + +@node Numeric, Object, Nil, Ȥ߹ߥ饹ȥ⥸塼 +@comment node-name, next, previous, up +@section Numeric + +̤ɽݥ饹 + +SuperClass: Object + +Included Modules: Comparable + +Methods: + +@ftable @code +@item + self + +֥@code{self}ΤΤ֤ + +@item - self + +@code{0 - self}֤֥ͤ饹ǤΨŪ˺뤳Ȥ +Ԥ롥 + +@item abs + +֤ͤ + +@item divmod(@var{other}) + +Ⱦ;2Ǥ֤ + +@item next + +ο֤οȤϤοۤǾǤ롥 +@end ftable + +@xref{Object} +@xref{Comparable} + +@node Object, Proc, Numeric, Ȥ߹ߥ饹ȥ⥸塼 +@comment node-name, next, previous, up +@section Object + +Ƥ̾說饹Υѥ饹̾說饹ΥΰŪʿ +Ƥ롥Υ饹Υ֥饹Ǥʤ饹@code{Kernel} +@code{Nil}Ǥ롥 + +SuperClass: Kernel + +Methods: + +@ftable @code +@item extened(module@dots{}) + +ǻꤷ⥸塼@code{self}˥롼ɤ롥⥸塼 +ƤåɤðۥåɤȤɲä롥 + +@item initialize(@dots{}) + +@code{Class:new}饪֥Ȥ˼ưŪ˸ƤӽФ롥ǥե +Ȥϲ⤷ʤ֥饹ɬפ˱ƺ뤳Ȥ +Ƥ롥@code{Class:new}Ϳ줿ΤޤϤ롥 + +@item is_instance_of?(@var{class}) + +֥@code{self}饹@var{class}ΥǤ +֤@code{obj.is_instance_of?(c)}ΩĤ +@code{obj.is_kind_of?(c)}Ω롥 + +@item is_kind_of?(@var{class}) + +֥@code{self}饹@var{class}Υ֥饹Υ +Ǥ֤ + +@item clone +@item dup + +֥Ȥʣ롥¨ͤǤFixnum饹ʳΥ +饹ξ硤@code{obj.equal?(obj.clone)}ϵǤ뤬¿ξ +@code{obj == obj.clone}ϿǤ롥 + +String饹ʳǤ(ä˺ʤ¤)dupclone̾Ǥ롥 + +@item to_s + +֥Ȥʸɽ֤ΥåɤŪprintformat +åɤѤƤ롥 + +@item to_a + +֥ȤѴ롥@code{Kernel}饹Ƥǥե +ȤϡΥ֥ȼȤޤ1Ǥ֤ +@end ftable + +@xref{Kernel} + +@node Proc, Process, Object, Ȥ߹ߥ饹ȥ⥸塼 +@comment node-name, next, previous, up +@section Proc + +ƥ졼Ϥ줿ƥ졼֥å³Ȥƥ֥Ȳ +Ρ¹Ԥ륳ɤǤʤƥ(ѿ)ʤɤ¸롥 +֥å֥Ȥϡ@code{call}åɤˤäơ줿ΤƱ +Ķɾ뤳ȤǤ롥æ(@code{return}, +@code{break}, @code{continue}, @code{redo}, @code{retry})δĶ¸ +ʤΤǡ֥å֥ȤæФμ¹Ԥ㳰ȯ +뤳Ȥˤʤ롥 + +SuperClass: Object + +Methods: + +@ftable @code +@item call(@var{arg}[,@dots{}]) + +֥å¹Ԥ롥 +@end ftable + +Single Methods: + +@ftable @code +@item new + +֥å롥@code{yield}¹ԤǤǤΥåɤ +ƤФȡλǼ¹Ԥ٤ɤƥȤȤȤ߹ +֥(@code{Proc})롥 +@end ftable + +@xref{Object} + +@node Process, Range, Proc, Ȥ߹ߥ饹ȥ⥸塼 +@comment node-name, next, previous, up +@section Process + +ץ˴ؤԤʤΥ⥸塼롥@code{Math}⥸塼 +ƱͤƤΥåɤðۥåɤȤƤ̾ΥåɤȤƤȤ롥 +@code{Process}ϥץ֥ȤΥ饹ǤϤʤơץ +åɤޤȤΤǤ뤳Ȥդ뤳ȡ + +Methods: +Single Methods: + +@ftable @code +@item egid + +ץθߤμ¸GID֤ + +@item egid= @var{gid} + +ץθߤμ¸GID@var{gid}˥åȤ롥 + +@item euid + +ץθߤμ¸UID֤ + +@item euid= @var{uid} + +ץθߤμ¸UID@var{uid}˥åȤ롥 + +@item getpgrp([@var{pid}]) + +@var{pid}ǻꤵ줿ץ߽°Ƥץ롼פid +֤@var{pid}ά@var{pid}0Ϳϸ¹ԤƤ +ץоݤˤ롥 + +@item getpriority(@var{which}, @var{who}) + +@var{which}@var{who}ǻꤵץץ롼ס桼 +ߤ̤֤ͥܺ٤@samp{getpriority(2)}ȡProcess⥸塼 +ǤwhichȤƻǤ@var{PRIO_PROCESS}@var{PRIO_PGRP} +@var{PRIO_USER}Ƥ롥 + +@item gid + +ץθߤμGID֤ + +@item gid= @var{gid} + +ץθߤμGIDgid˥åȤ. + +@item pid + +ץΥץID֤ϥƥѿ@code{$$}ͤƱǤ +롥 + +@item ppid + +ƥץΥץΥץID֤UNIXǤľܤοƥץλ +硤ƥץpid1(initpid)ˤʤ롥 + +@item setpgrp(@var{pid}, @var{pgrp}) + +@var{pid}ǻꤵ줿ץΥץ롼פ@var{pgrp}ˤ롥 +@var{pid}0Ϳȸ¹Υץоݤˤ롥 + +@item setpriority(@var{which}, @var{who}, @var{prio}) + +@var{which}@var{who}ǻꤵץץ롼ס桼 +ߤ̤ͥ@var{prio}ꤹ롥ܺ٤@samp{setpriority(2)} +ȤΤȡ + +@item uid + +ץθߤμUID֤ + +@item uid= @var{uid} + +ץθߤμUID@var{uid}˥åȤ. +@end ftable + +@node Range, Regexp, Process, Ȥ߹ߥ饹ȥ⥸塼 +@comment node-name, next, previous, up +@section Range + +ϰϥ֥ȤΥ饹ϰϥ֥Ȥ@code{..}黻Ҥˤä +졤ŪˤϰʲΤ褦ʻȤ + +@example +for i in 1..5 + @dots{} +end +@end example + +ξϰʲ®. + +@example +1.upto(5) { + @dots{} +} +@end example + +ϰϥ֥Ȥ@code{..}黻Ҥξդ@code{Comparable} +९饹ΥǤвǤʤϰϤϻȽޤळ +Ȥդ뤳. + +SuperClass: Object + +Included Modules: Enumerable + +Methods: + +@ftable @code +@item self =~ @var{other} + +@code{self}@var{other}Ʊ饹Фϰϥ֥Ȥǡ +@var{other}(@code{start <= @var{other} <= end}) +@code{case}ϰϻꤹǤ롥㤨 + +@example +case i +when 1, 3..5 + @dots{} +end case +@end example + +Τ褦ʥɤȤǤ롥 + +@item each + +ϰ¸ߤ륪֥ȤͿ륤ƥ졼@code{for}Τ +Ѥ롥 + +@item end + +ϰϤν֤ + +@item start + +ϰϤλ֤ +@end ftable + +@xref{Object} +@xref{Enumerable} + +@node Regexp, String, Range, Ȥ߹ߥ饹ȥ⥸塼 +@comment node-name, next, previous, up +@section Regexp + +ɽΥ饹ɽΥƥ@code{/@dots{}/}Ȥɽ +ưŪ뤿ˤ + +@example +Regexp.new(ʸ) +@end example + +Ȥ롥String饹@code{=~}ϤȤ¿Υåɤ +ɽؤʸͿ줿ˤŪɽΤǡ +ȤȻפ䡤ɽʸʸζ̤Ū +˻ꤷʤɰʳŪȻפȤϾʤϤ + +SuperClass: Object + +Methods: + +@ftable @code +@item self =~ @var{string} + +ɽʸ˥ޥå硤ޥå֤֤ޥåʤ +@code{nil}֤ + +@item ~ self + +@code{$_ =~ self}Ʊ +@end ftable + +Single Methods: + +@ftable @code +@item compile(@var{string}[, @var{casefold}]) +@itemx new(@var{string}[, @var{casefold}]) + +ʸɽѴ֥Ȥ֤άǽ2Ϳ +졤ͤ@code{nil}Ǥʤˤϡ줿ɽ֥Ȥ +ƥѿ@code{$=}ͤ˴ؤ餺ޥåʸʸΰ㤤 +̵뤹롥 + +@item quote(@var{str}) + +ʸɽǰ̣ʸפ롥ʸ + +@end ftable + +@xref{Object} + +@node String, Struct, Regexp, Ȥ߹ߥ饹ȥ⥸塼 +@comment node-name, next, previous, up +@section String + +ʸ饹Rubyʸϥ̥륿ߥ͡ȤǤϤʤΤǡХʥǡ +ⰷ롥äƤɤ餫ȤñʤʸȤХǤ롥 +λۤ˴Ťơɽ˴ؤåɰʳ2byteϤʸռ +ƤʤϺԤμȴǤϤʤտŪˤƤΤǤ( +Ƥ) + +String饹ΥåɤΤ@code{!}ǽΤϥ쥷Ф롥 +Ʊ̾@code{!}̵Τϥ쥷ФΥԡäƤ顤 +롥@code{!}ΤΤ®ͽ̷̤䤹 +ǡ̵ΤǤ롥 + +@example +f = "string" +print f, sub("str", "ski"), f + @result{} string, skiing, string +print f, sub!("str", "ski"), f + @result{} skiing, skiing, skiing +@end example + +SuperClass: Object + +Included Modules: Comparable, Enumerable + +Methods: + +@ftable @code +@item self + @var{other} + +ʸϢ롥Ϣ뤵줿ʸ֤ + +@item self * @var{times} + +ʸη֤㤨@code{x" * 4 == "xxxx"}Ǥ롥 + +@item self == @var{other} +@item self > @var{other} + +ʸӡƥѿ@code{$=}@code{nil}Ǥʤˤʸʸ +̤ӤԤʤ + +@item self =~ @var{other} + +ʸΥޥå@var{other}ɽʸ@var{other}ʸξ +ˤưŪɽѴ롥ޥåϥޥå֡ +ä@code{nil}֤롥 + +@item ~ self + +@code{$_ =~ self}Ʊ + +@item self[@var{nth}] +@item self[@var{beg}..@var{end}] +@item self[@var{beg}, @var{len}] + +ƤμФ1ܤηǤ@var{nth}ХܤΥǡFixnumȤ +֤2ܤηǤ@var{beg}Хܤ@var{end}ХܤޤǤʬ +ʸ֤(ξüޤ)3ܤηǤ@var{beg}Хܤ +@var{len}Хʬʬʸ֤ + +@item self[@var{nth}] = @var{val} +@item self[@var{beg}..@var{end}] = @var{val} +@item self[@var{beg}, @var{len}] = @var{val} + +Ƥι1ܤηǤ@var{nth}ХܤΥǡ@var{val}() +ѹ롥2ܤη@var{beg}Хܤ@var{end}ХܤޤǤ +ʬʸ@var{val}ȤͿ줿ʸ֤롥3ܤη +@var{beg}Хܤ@var{len}Хʬʬʸ@var{val}ȤͿ +줿ʸ֤롥 + +@item capitalize +@itemx capitalize! + +ʸκǽʸ(줬ե٥åȤǤ)ʸѴ +ĤʸΥե٥åȤʸ֤롥 + +@item chop +@itemx chop! + +ʸκǸΥХȤڤȤʸѹ뤳Ȥդ뤳 +ȡ@code{chop!}ϸʸ롥 + +@item crypt(@var{salt}) + +@samp{crypt(3)}ѤưŹ沽ʸ֤@var{salt}2ХȰʾ +ĹǤդʸǤ롥 + +@item delete(@var{str}) +@itemx delete!(@var{str}) + +ʸΤ@var{str}˴ޤޤʸ롥ʸλ +@code{tr}ƱͤǤꡤ@code{a-b}@code{a}@code{b}ޤǤϰϤ +Ƭ@code{^}ʸ(ޤޤƤʤΤ)̣롥 + +@item dup + +@code{self}ƱƤʸ롥@code{clone} +@code{freeze}֤⥳ԡ뤬@code{dup}Ƥʸ +롥 + +@item downcase +@itemx downcase! + +ʸΥե٥åȤƾʸ֤ʸ֤ +@code{tr("A-Z", "a-z")}꾯® + +@item each @{|@var{char}|@dots{}@} +@itemx each_byte @{|@var{char}|@dots{}@} + +ʸΤ줾ΥХȤˤĤƷ֤ƥ졼 + +@item each_line @{|@var{line}|@dots{}@} + +ʸ1Ԥɤ߹Ǥ륤ƥ졼 + +@item freeze + +ʸԲĤˤ롥ٹԲĤꤵ줿ʸƤѹ +Ȥ㳰ȯ롥 + +@item gsub(@var{pattern}, @var{replace}) +@itemx gsub(@var{pattern}) @{@dots{}@} +@itemx gsub!(@var{pattern}, @var{replace}) +@itemx gsub!(@var{pattern}) @{@dots{}@} + +ʸ@var{pattern}˥ޥåʬ@var{replace}֤롥 +ִʸ@var{replace}@samp{&}@samp{\0}ϥޥåʸˡ +@samp{\1@dots{}\9}nܤγ̤Ƥ֤롥 +@var{replace}ά줿ˤϥƥ졼Ȥư֥åɾ +ִ̤롥 + +@code{gsub}ִ줿ʸ֤(ִԤʤʤäϸʸ +֤)@code{gsub!}ִԤʤ줿ˤоݤȤʤʸ +Ԥʤʤäˤ@code{nil}֤ + +@item hex + +ʸ16ʿɽʸȲᤷơѴ롥 + +@item index(@var{substr}[, @var{pos}]) + +@var{substr}ǽ˽и֤֤@var{pos}ͿȤΰ֤ +鸡Ϥ롥Ĥʤˤ@code{nil}֤ + +@item intern + +ʸ˰դб֤ʸϥʥʸޤǤϤʤʤ + +@item length +@itemx size + +ʸĹ(Хȿ)֤ + +@item ljust(@var{width}) +@itemx rjust(@var{width}) +@itemx center(@var{width}) + +ʸ줾졤ͤᡤͤᡤ@var{width}ʸ +֤ʸĹ@var{width}Ĺϸʸ֤ڤͤ + + +@item next + +@code{self}ΡּΡʸ֤ʸȤϿϿȤơ +ʸϱʸȤä夬νԤʤ줿ΤǤ롥 + +@example +"aa".next @result{} "ab" +"99".next @result{} "100" +"a9".next @result{} "b0" +@end example + +@item oct + +ʸ8ʿɽʸȲᤷơѴ롥8ʿ +@code{/[0-7]+/}ǤꡤʸƬ餳Υѥ˥ޥåʬ +Ѵ롥ƤϤޤʤʸФƤ0֤ +perlȤϰäʸ0xϤޤäƤ뤫Ȥä 16ʿȸʤ +Ƥ줿ϤʤƬ08ʿǧ졤0֤ + +@item reverse +@itemx reverse! + +ʸγƥХȤս¤٤ʸ֤ʸ2ХȤǹ +ʸޤǤƤ⤪ʤ˥Хñ̤ȿž롥@code{split}2 +ХʸΤǡ2Хʸޤʸʸñ̤ȿž +ˤ + +@example +"ʸ".split(//).reverse.join("") +@end example + +ȤФ褤 + +@item rindex(@var{substr}[, @var{pos}]) + +ʸ@var{substr}Ǹ˽и֤֤@var{pos}ͿȤ +֤Ǹλ롥Ĥʤˤ@code{nil}֤@code{index} +Ȥ + +@itemize +@item +ʸ鸡롥 +@item +substrȤɽդʤ +@end itemize + +2Ǥ롥 + +@item split([@var{sep}[, @var{limit}]]) + +ʸ@var{sep}ǻꤵ줿ѥˤäơեɤʬ䤹롥 +@var{sep}ά줿ΥǥեȤϥƥѿ@code{$;}ͤѤ +롥@var{limit}ꤵ줿ˤϺ@var{limit}ĤΥեɤʬ +롥s@code{plit}ʬ䤵줿ʸޤ֤@var{sep}ǻ +줿ѥʸȥޥåʸ1ʸĤʬ䤵 +롥 + +@item squeeze([@var{str}]) +@itemx squeeze!([@var{str}]) + +ʸΤ@var{str}˴ޤޤʸϢ³Ƥ硤ʸ˰ +롥@var{str}ά줿硤٤ƤʸоݤȤ롥ʸλ +trƱͤǤꡤ@code{a-b}@code{a}@code{b}ޤǤϰϤƬ +@code{^}ʸ(ޤޤƤʤΤ)̣롥 + +@item strip +@itemx strip! + +ʸζ + +@item sub(@var{pattern}, @var{replace}) +@itemx sub(@var{pattern}) @{@dots{}@} +@itemx sub!(@var{pattern}, @var{replace}) +@itemx sub!(@var{pattern}) @{@dots{}@} + +ʸ@var{pattern}˥ޥåǽʬ@var{replace}֤롥 +ִʸ@var{replace}@samp{&}@samp{\0}ϥޥåʸˡ +@samp{\1@dots{}\9} nܤγ̤Ƥ֤롥 +@var{replace}Τʤλˤϥƥ졼Ȥư֥åɾ +ִ̤롥 + +@code{sub}ִ줿ʸ֤(ִԤʤʤäϸʸ +֤)@code{sub!}ִԤʤ줿ˤоݤȤʤʸ +ʤʤäˤ@code{nil}֤ + +@item sum([@var{bits}]) + +ʸ@var{bits}ӥåȤΥå롥άͤ16Ǥ롥ruby +ϰʲΥɤSystem V@code{sum}ץƱͤ롥 + +@example +while gets() + sum += $_.sum +end +sum %= 65536 +@end example + +@item swapcase +@itemx swapcase! + +ʸΥե٥åȤΤʸʸˡʸʸ֤ +롥 + +@item to_f + +ʸFloatѴ롥 + +@item to_i + +ʸ10ʿɽʸȲᤷơѴ롥 + +@item tr(@var{search}, @var{replace}) +@itemx tr!(@var{search}, @var{replace}) + +ʸ@var{search}ʸ˴ޤޤʸ¸ߤС +@var{replace}ʸбʸ֤롥@var{replace}ʸ +ά줿϶ʸͿ줿ȸʤ@var{replace}ʸ +@var{search}ʸû@var{replace}ʸκǸʸ +֤Ƥȸʤ@var{search}ʸûˤбʸ +ʤ@var{replace}ñ̵뤵(BSD@samp{tr}ư) + +@var{search}ʸ@var{replace}ʸ@code{a-b}Ȥ +硤@code{a}@code{b}ޤǤϰϤʸASCIIξǻꤷ +Ȥˤʤ롥ޤ@var{search}ʸκǽʸ@code{^}Ǥ硤 +³ʸ*ޤޤʤ*ʸִоݤˤʤ롥 + +@samp{tr(1)}εǽΤʸ뵡ǽϢ³ʸ̤뵡 +ǽ̤Υåɤʬ䤵Ƥ롥εǽˤĤƤ@code{delete} +@code{squeeze}ȤΤȡ + +ؤΤᡤ@code{str.tr(src,repl).squeeze(repl)}å +@code{tr_s(src,repl)}Ƥ롥 + +@item unpack(@var{template}) + +ʸ@var{template}ʸˤäƥѥåǤ +֤@var{template}ʸArray饹packåɤȤۤƱ +ͤǤ롥 + +@display +a ASCIIʸ(³nullʸ䥹ڡĤ) +A ASCIIʸ(³nullʸ䥹ڡ) +b ӥåȥȥ(̥ӥåȤ̥ӥå) +B ӥåȥȥ(̥ӥåȤ鲼̥ӥå) +h 16ʸ(̥˥֥뤬) +H 16ʸ(̥˥֥뤬) +c char +C unsigned char +s sort +S unsigned sort +i int +I unsigned int +l long +L unsigned int +n ͥåȥХȥshort +N ͥåȥХȥlong +f ñư(¸) +d ư(¸) +x 1ХɤФ +X 1Хȸ +@@ а֤ؤΰư +@end display + +ruby@code{unpack}perlȰäƥåηǽʤȤ +դ뤳ȡ + + +@item upcase +@itemx upcase! + +ʸΥե٥åȤʸ֤ʸ֤ +@code{tr("a-z", "A-Z")}꾯® + +@item upto(@var{end}) @{@dots{}@} + +@code{self}Ϥޤäơ@var{end}ޤǡּΡʸͿ륤ƥ졼 +ʸȤ@code{str.next}ͿʸǤ롥 + +Υåɤ@code{Range:each}ѤƤΤǡʲΤ褦ʽ +ǽǤ롥 + +@example +for i in "a" .. "ba" + print(i, "\n"); +end +@end example + +@samp{a, b, c,@dots{}aa,@dots{}az, ba}ޤǤƹԤ˽Ϥ롥 +@end ftable + +Single Methods: + +@ftable @code +@item new(@var{string}) + +@var{string}ƱƤĿʸ֤ +@end ftable + +@xref{Object} +@xref{Enumerable} +@xref{Comparable} + +@node Struct, Time, String, Ȥ߹ߥ饹ȥ⥸塼 +@comment node-name, next, previous, up +@section Struct + +¤Υ饹Υ饹Υ֥饹ʣΥǡޤȤѤ +(: @code{Time:times})ǡޤȤˤ饹Ѥ +뤳Ȥ⤢뤬(: @code{select})¤ΤȤ٤ϰʲΤ褦 +Ǥ롥@code{Struct:new}@code{Struct}Υ֥饹 +ơ֤¤ΤϤΥ֥饹ΥȤʤ롥 + +@enumerate +@item +Ǥο + +ǤοưΤϹ¤ΤȤΤˤϸʤ + +@item +Ǥο¿ + +ʹ֤٤ưפ˰복ǰο7ĤޤǤǤȤ⤬롥 +˽СǤ4İʾ夢ǡξѤ硤ǿ +2(ĤޤꥪեåȤȤΰ̣)7ۤ롥äơΤ褦 +ˤϹ¤ΤȤä䤹Ȼפ롥 + +@item +Ʊ̤ʤ + +¤Τ㴳Ȥ⤤Τǡ®٤ˤʤ (㤨 +Ʊ̤ʤ)Ϲ¤ΤλѤŬڤǤʤǽ +롥 +@end enumerate + +ƹ¤Τˤϥ̾Ʊ̾ΰΤʤåɤ롥 + +ܥɥǡ¤Τɽ뤿ˤϰʲηȤ + +@display +struct ¤̾ + @dots{} +end +@end display + +ץǤηǹ¤Τ櫓ǤϤʤ + +SuperClass: Object + +Included Modules: Enumerable + +Methods: + +@ftable @code +@item self[@var{idx}] + +@var{idx}λ@var{idx}ܤǤ֤ + +@item values +@itemx to_a + +¤ΤΥФͤǤ˻֤㤨аʲΥɤǼʬ +passwdȥϤ뤳ȤǤ롥 + +@example +print(Etc.getpwuid().values.join(":"), "\n") +@end example + +νϤ@samp{grep "$USER" /etc/passwd}νϤ;ʬʥեɤ +Ĥ(ƥˤäưۤʤ)ʳƱǤ롥 +@end ftable + +Single Methods: + +@ftable @code +@item new(@var{name}, @var{member}@dots{}) + +@var{name}Ȥ̾ŤΤΥ饹롥@var{member_value} +Ϲ¤ΤΥФɽʸǤ롥줿¤Υ饹ˤϥФ +ꤵ줿̾ΥåɤƤơΥåɤˤäƥФ +Ƥ뤳ȤǤ롥 +@end ftable + +Single Methods for subclasses: + +@ftable @code +@item new(@var{value}@dots{}) + +¤Υ饹Υ롥@var{value}Ϲ¤ΤΥФ +Ǥ롥Фο¤Υ饹줿Ȱۤʤˤ㳰ȯ +롥 +@end ftable + +@xref{Object} +@xref{Enumerable} + +@node Time, , Struct, Ȥ߹ߥ饹ȥ⥸塼 +@comment node-name, next, previous, up +@section Time + +֤ɽ饹羮ӤʤɤǤ롥@code{Time.now}Ǹߤλ֤ +뤳ȤǤ롥ޤեΥॹפåɤͤ +Υ饹ΥǤ롥 + +SuperClass: Object + +Included Modules: Comparable + +Methods: + +@ftable @code +@item self <=> @var{other} + +@var{other}TimeΥͿ줿ˤ +@samp{1970ǯ1 1 00:00:00 GMT}ÿǤȤƻȤӤ +Ԥʤ + +@item asctime +@itemx ctime +@itemx to_s + +@samp{date(1)}ʸѴ롥 + +@item gmtime + +ॾνԤʤʤGMTǤλ롥ΥåɤȤ +Time饹ΥϡʸλѴGMTǹԤʤ +@code{gmtime}ϼʬȤ֤ + +ɥλɽˤ@code{print(Time.now.gmtime, "\n")}Ȥ +Ф褤 + +@item localtime + +ॾνԤʤä(ǥե)@code{localtime} +ʬȤ֤ + +@item to_i +@itemx tv_sec + +@samp{1970ǯ 1 1 00:00:00 GMT}ޤǤÿ֤ +secondʬǤ⤢롥 + +@item sec +@itemx min +@itemx hour +@itemx mday +@itemx year +@itemx wday +@itemx yday +@itemx zone +@itemx isdst + +ŪݻƤ@code{tm}¤ΤƤ֤@code{zone}ʳ +֤@code{zone}ϥॾɽʸ֤(cf +@samp{localtime(3)}) + +@item strftime(@var{format}) + +@var{format}ʸ˽äʸѴ̤֤ +@var{format}ʸȤƻǤΤ ʲ̤Ǥ롥 + +@display +%A ̾(Sunday, Monday@dots{}) +%a ξά̾(Sun, Mon@dots{}) +%B ̾(January, February@dots{}) +%b ξά̾(Jan, Feb@dots{}) +%c ɽ(cf @samp{ctime(3)}) +%d ʿǤ(01-31) +%H 24λ(00-23) +%I 12λ(01-12) +%j ǯ̻(001-366) +%M ʬ(00-59) +%m ɽ(01-12) +%p ޤϸ(AM,PM) +%S (00-61) +%U ɽǽ1 + Ϥޤ(00-53) +%W ɽǽη1 + Ϥޤ(00-53) +%w ɽ0(0-6) +%X (: 15:01:06) +%x (: Fri Jan 14 1994) +%Y ɽ +%y β2(00-99) +%Z ॾ +%% % +@end display + +@item usec +@itemx tv_usec + +micro secondʬ֤ +@end ftable + +Single Methods: + +@ftable @code +@item now + +ߤλɽ@code{Time}饹Υ롥 + +@item at(@var{time}) + +@var{time}Ʊɽ@code{Time}饹Υ롥 +@var{time}@code{Time}饹Υ뤤Ͽ(/ư +)Ǥꡤξ@samp{1970ǯ 1 1 00:00:00 GMT}ÿ +Ȥƻ롥 + +@item times + +ߤΥץȤλҥץ桼/ƥCPUѻ +¤ΤȤ֤(@xref{Struct}) + +@display +struct tms + utime # ץΥ桼 + stime # ץΥƥ + cutime # ҥץΥ桼 + cstime # ҥץΥƥ +end +@end display + +֤ñ̤äǤꡤưͿ롥ܺ٤@samp{times(3)} +ȤΤȡ +@end ftable + +@xref{Object} +@xref{Comparable} + +@node CȤΥե, ռ, Ȥ߹ߥ饹ȥ⥸塼, Top +@comment node-name, next, previous, up +@chapter CȤΥե + +rubyCȤΥեC줫Υ饹⥸塼 +CǵҤåɤrubyΥåɤθƤӽФ +졼θƤӽФ㳰ʤɤԤʤȤ롥ޤOSм +ԻCǽ줿⥸塼ɤ뤳Ȥ롥 + +Ūʥե˴ؤƤϡ̥ɥ(źեե C-IF) +ȤΤȡ + +@node ռ, ʸˡ, CȤΥե, Top +@comment node-name, next, previous, up +@chapter ռ + +RubyθͤϿ¿θαƶƤ롥ʲˤΤϤμ +ʸǤ롥 + + C, Perl, CLU, Sather, CLOS, Eiffel, Icon, tcl, AWK, bourne shell, + Smalltalk, Emacs Lisp. + +ޤrubyθͤꤹ뤿˶ϤƲäʲˤ롥 + + ͷƣϺ¼Σţáغܣģţá + ʤֺ.ٻ(ɾά) + +@node ʸˡ, Variables Index, ռ, Top +@comment node-name, next, previous, up +@chapter ʸˡ + +ʲϵBNFǵҤrubyʸˡǤ롥ΤʵҤparse.y +줿 + +@example +PROGRAM : COMPEXPR + +COMPEXPR : EXPR (TERM EXPR)* [TERM] + +EXPR : MLHS `=' ARGS + | return ARGS + | fail ARGS + | yield ARGS + | defined? ARG + | identifier CALL_ARGS0 + | PRIMARY `.' identifier CALL_ARGS0 + | super CALL_ARGS + | undef FNAME + | alias FNAME FNAME + | include identifier (`,' identifier)* + | EXPR if EXPR + | EXPR while EXPR + | EXPR and EXPR + | EXPR or EXPR + | ASSOCS + | ARG + +ARG : LHS `=' ARG + | LHS OP_ASGN ARG + | ARG `..' ARG + | ARG `...' ARG + | ARG `+' ARG + | ARG `-' ARG + | ARG `*' ARG + | ARG `/' ARG + | ARG `%' ARG + | ARG `**' ARG + | `+' ARG + | `-' ARG + | ARG `|' ARG + | ARG `^' ARG + | ARG `&' ARG + | ARG `<=>' ARG + | ARG `>' ARG + | ARG `>=' ARG + | ARG `<' ARG + | ARG `<=' ARG + | ARG `==' ARG + | ARG `!=' ARG + | ARG `=~' ARG + | ARG `!~' ARG + | `!' ARG + | `~' ARG + | ARG `<<' ARG + | ARG `>>' ARG + | ARG `&&' ARG + | ARG `||' ARG + | ARG `::' identifier + | PRIMARY + +PRIMARY : `(' COMPEXPR `)' + | LITERAL + | VARIABLE + | super `(' [CALL_ARGS] `)' + | super + | PRIMARY `[' [ARGS] `]' + | `[' [ARGS [`,']] `]' + | `@{' [ (ARGS|ASSOCS) [`,'] ] `@}' + | redo + | break + | continue + | retry + | return + | fail [`(' [ARGS] `)'] + | yield [`(' [ARGS] `)'] + | defined? `(' ARG `)' + | PRIMARY `@{' [`|' [ITER_VAR] `|'] COMPEXPR `@}' + | OPERATION `(' [CALL_ARGS] `)' + | PRIMARY `.' OPERATION `(' [CALL_ARGS] `)' + | PRIMARY `.' OPERATION + | if EXPR THEN + COMPEXPR + (elsif EXPR THEN COMPEXPR)* + [else COMPEXPR] + end + | while EXPR TERM COMPEXPR end + | case COMPEXPR + (when ARGS THEN)+ + [else COMPEXPR] + end + | for ITER_VAR in EXPR TERM + COMPEXPR + end + | begin + COMPEXPR + [rescue COMPEXPR] + [ensure COMPEXPR] + end + | class identifier `:' identifier + COMPEXPR + end + | module identifier + COMPEXPR + end + | def FNAME ARGLIST + COMPEXPR + end + | def SINGLETON `.' FNAME ARGLIST + COMPEXPR + end + +THEN : TERM + | then + | TERM then + +ITER_VAR : LHS + | MLHS + +MLHS : LHS `,' [LHS (`,' LHS)*] [`*' LHS] + +LHS : VARIABLE + | PRIMARY `[' [ARGS] `]' + | PRIMARY `.' identifier + +CALL_ARGS : ARGS + | ASSOCS + | ARGS [`,' ASSOCS] [`,' `*' ARG] + | `*' ARG + +ARGS : ARG (`,' ARG)* + +ARGLIST : `('[identifier(`,'identifier)*][`*'identifier]`)' + | TERM + +SINGLETON : VARIABLE + | `(' EXPR `)' + +ASSOCS : ASSOC (`,' ASSOC)* + +ASSOC : ARG `=>' ARG + +VARIABLE : VARNAME + | nil + | self + | `__FILE__' + | `__LINE__' + +LITERAL : numeric + | SYMBOL + | STRING + | REGEXP + +TERM : `;' + | `\n' + +@end example + +겼ϻǧ롥 + +@example + +SYMBOL : `:'FNAME + | `:'VARNAME + +FNAME : identifier | `..' | `|' | `^' | `&' + | `<=>' | `==' | `=~' | `>' | `>=' | `<' | `<=' + | `<<' | `>>' | `+' | `-' | `*' | `/' | `%' | `**' + | `~' | `+@@' | `-@@' | `[]' | `[]=' + +OPERATION : identifier + | identifier'!' + | identifier'?' + +VARNAME : GLOBAL + | `@@'identifier + | identifier + +GLOBAL : `$'identifier + | `$'any_char + +STRING : `"' any_char* `"' + | `'' any_char* `'' + | ``' any_char* ``' + +REGEXP : `/' any_char* `/'[i] + +@end example + +@node Variables Index, Concept Index, Function Index, Top +@comment node-name, next, previous, up +@unnumbered Variable Index + +@printindex vr + +@node Concept Index, Function Index , Variables Index, Top +@comment node-name, next, previous, up +@unnumbered Concept Index + +@printindex cp + +@node Function Index, Top , Concept Index, Top +@comment node-name, next, previous, up +@unnumbered Function Index + +@printindex fn + +@summarycontents +@contents +@bye + +Local variables: +fill-column: 70 +end: |