`
Array
Float
Integer
String
at_exit
autoload
binding
caller
catch
chop
chop!
chomp
chomp!
eval
exec
exit
exit!
fail
fork
format
gets
global_variables
gsub
gsub!
iterator?
lambda
load
local_variables
loop
open
p
print
printf
proc
putc
puts
raise
rand
readline
readlines
require
select
sleep
split
sprintf
srand
sub
sub!
syscall
system
test
trace_var
trap
untrace_var
Rubyには厳密な意味では関数はありませんが,
Kernel
モジュールで定義されているメソッドの一部は(全ての通常クラスから
関数形式で呼び出せるので)一般の言語における関数のように用
いられます.これらのメソッドを再定義する際には互換性を考えて
行なう必要があります.
` str
strをコマンドとして実行し,その出力を文字列として
返します.このメソッドは`str`
の形式で呼ばれます.
Array(arg)
引数を配列に変換します.
Float(arg)
引数を浮動小数点数に変換します.
Integer(arg)
引数を整数に変換します. 引数が文字列であった場合には,0x, 0b, 0などのprefixに応じて それぞれ16進,2進,8進数として変換します.
String(arg)
Kernel#to_s
を用
いて,引数を文字列に変換します.
at_exit
与えられたブロックをインタプリタ終了時に実行します.
autoload(module, file)
moduleに最初にアクセスした時にfileを
require
するように設定し
ます.moduleは文字列またはシンボルで指定します.
binding
eval
の第2引数として指定できる変数とメソッドの結
合情報を含むデータ構造を返します.
caller([level])
level段上の呼出し元の情報を$@
の形式
のバックトレース(文字列の配列)として返します.トップレベルで
は空の配列を返します.callerの戻り値を$@
に代入
することで例外の発生位置を設定できます.以下のようなコードで
呼出し関係のスタックトレースを表示できます.
for c in caller(0) print c, "\n" end
catch(tag){...}
ブロックを実行してその値を返します.ブロックの実行中に
tag で指定されたのと同じ名前の
throw
が行われた場合は,その
throw
の値を戻り値とします.
例えば以下のコードは10ではなく,25を返して, some_processは呼び出されません.
def throw_exit throw :exit, 25 end catch(:exit) { throw_exit some_process; 10; }
chop
chop!
システム変数$_
を最後の文字を取り除いたものにし
ます(終端が"\r\n"であれば2文字取り除きます).
chop!
は文字列そのものを変更します.
chomp([rs])
chomp!([rs])
システム変数$_
をrsで指定される末尾
の文字列を取り除いたものにします.
String#chomp参照.
eval(expr[,binding])
exprとして与えられた文字列をRubyプログラムとして
解釈,実行します.省略可能な第2引数としてProc
オ
ブジェクトまたはbinding
の戻り値である束縛情報を
与えた場合,文字列をその環境で解釈,実行します.
exec(command)
commandで指定されたコマンドを子プロセスとして起動 します.起動に成功した場合,この関数からは戻りません.
複数の引数を指定した場合は,shellを経由せずに実行されます. この場合には空白やshellのメタキャラクタもそのまま渡されます.
先頭の引数が2要素の配列であった場合,第1要素の文字列が実際に 起動するプログラムのパスであり,第2要素が「みせかけ」のプロ グラム名になります.
exit([status])
Rubyプログラムの実行を終了します.statusとして整 数が与えられた場合,その値をRubyコマンドの終了ステータスとし ます.デフォルトはの終了ステータスは0です.
exit
は大域脱出 SystemExit
を発行す
ることによってプログラムの実行を終了させますので,
必要に応じてrescue
節で捕捉することができます.
exit!([status])
整数statusを終了ステータスとして,Rubyプログラム
の実行を終了します.exit!
はexit
と
は違って,例外処理などは一切行ないません.
fork
の後,
子プロセスを終了させる時などに用いられます.
fork
fork(2)システムコールを使ってプロセスの複製を作
ります.親プロセスでは子プロセスのプロセスIDを,子プロセスで
はnil
を返します.ブロックを指定してとして呼び出された場
合には,生成した子プロセスで,ブロックを評価します.
gets([rs])
readline([rs])
引数として与えられたファイル(なければ標準入力)をつなげた仮想
的なファイル(システム変数$<
でアクセスできる)
から一行読み込んで,文字列を返します.ファイルの終りに到達し
た時にはnil
を返します.行の区切りは引数
rsで指定した文字列になります.rsのデフォ
ルト値はシステム変数$/
の値です.読み込んだ文字
列はシステム変数$_
にもセットされます.
readline
はgets
と同じ働きをしますが,
EOFで例外EOFError
を発生させます.
global_variables
プログラム中で定義されている大域変数名の配列を返します.
gsub(pattern[, replace])
gsub!(pattern[, replace])
システム変数$_
の指す文字列内で
patternにマッチする部分を全てreplaceに
置き換えた文字列を返します.引数replaceが省略され
た時にはイテレータとして動作し,ブロックを評価した結果で置換
を行います.gsub!
は$_
の指している
文字列そのものを書き換えます.gsub
メソッドは
$_
の値をコピーして,コピーの方を更新し,
$_
に代入します.
iterator?
メソッドにブロックが与えられている時には真,そうでない時に偽 を返します.
load(file[, priv])
fileから Ruby プログラムをロード・実行します.
fileをロードするパスはシステム変数$:
で決定されます.パス先頭の`~
'はユーザのホームディ
レクトリに展開されます.
省略可能な引数privが真のとき、 ロード・実行は内部的に生成される無名モジュールを トップレベルとして行われ,グローバルな名前空間を汚染しません.
local_variables
現在のスコープで定義されているローカル変数名の配列を返します.
loop
(中断されない限り)永遠にブロックの評価を繰り返します.
open(file[, mode])
open(file[, mode]){...}
fileをオープンして,
File
オブジェクトを返します.
modeは,"r"
, "r+"
,
"w"
, "w+"
, "a"
,
"a+"
のいずれかでファイルのアクセスモードを指定
します.fopen(3)を参照してください.
ファイル名が|
で始まる時には続く文字列をコマンド
として起動し,コマンドの標準入出力に対してパイプラインを生成
します.
注意: Perlと異なりコマンドは常に`|
'で
始まります.
コマンド名が"-"である時,open
は
Rubyの子プロセスを生成し,その子プロセスとの間のパイプを返し
ます.
open
がブロックとともに呼び出された時,open
はファイルをオープンしてブロックを実行し,
ブロックの実行が終了するとファイルをクローズします.
つまり,以下のようになります.
open(path, mode) do |f| ... end # 上記とほぼ同じコード f = open(path, mode) begin ... ensure f.close end
p(obj)
objを人間に読みやすい形で出力します.以下のコード と同じです.
print obj.inspect, "\n"
print(arg1...)
引数を順に出力します.引数が与えられない時には変数
$_
の値を出力します.文字列以外のオブジェクトが
引数として与えられた場合には,当該オブジェクトを文字列に変換
してから出力します.
変数$;
(出力フィールドセパレータ)に
nil
でない値がセットされている時には,各引数の間
にその文字列を出力します.変数$\
(出力レコード
セパレータ)にnil
でない値がセットされている時に
は,最後にそれを出力します.
printf([port, ]format, arg...)
C言語のprintfと同じようにformatに従い引数を文字列
に変換して出力します.第1引数がIOのサ
ブクラスのインスタンスであった場合はそのオブジェクトに対して
出力を行ないます.デフォルトは$stdout
に出力しま
す.Rubyにおけるformat指定子の拡張については
sprintf
の項を参照してください.
proc
lambda
与えられたブロックから手続きオブジェクト(クラス
Proc
のインスタンス)を生成して返します.
putc(ch)
文字chをデフォルト出力($>)に出力します.
puts(obj...)
各objをデフォルト出力($>)に出力した後,改行します.
raise([error_type,][message][,traceback])
fail([error_type,][message][,traceback])
例外を発生させます.引数が無い場合,直前の例外を再発生させます.
引数が一つの場合,引数が文字列であれば,その文字列をメッセー
ジとする RuntimeError
例外を発生させ,引数が例外オブジェクトであった場合にはその例外を発生
させます.引数が二つの場合,第一引数で指定された例外を,第二引数を
メッセージとして発生させます.この場合,例外は例外クラスまた
は例外オブジェクトで指定します.
第三引数が指定された場合にはそれは$@
または
caller
で得られるスタック
情報です.
発生した例外は変数 $! に格納されます.また例外が 発生したソースコード上の位置は変数 $@ に格納され ます.
raise
には fail
という別名が定義さ
れています.
rand(max)
0からmaxまでの(maxを含まない)範囲の整数の乱数を発生します
(max
は正の整数).
srand
が呼ばれない限り,
この関数はプログラムを実行するたびに毎回同じ乱数の並びを返します.
maxとして0を指定すると0から1を越えない範囲の実数 値で乱数を与えます.
readlines([rs])
コマンドライン引数として与えられたファイル(なければ標準入力) をつなげた仮想的なファイルを全て読み込んで,その各行を要素と してもつ配列を返します.
行の区切りは引数rsで指定した文字列になります.
rsのデフォルト値はシステム変数
$/
の値
です.
require(feature)
featureで指定される Ruby ライブラリを必要に応じて
ロードします.featureはロードするライブラリを指定
する文字列で,拡張子.rb
が指定されている時はRuby
スクリプト,拡張子.so
が指定されている時は,バイ
ナリモジュールをロードします.ただし,いくつかのアーキテクチャ
ではバイナリモジュールのロードは提供されません.バイナリモジュー
ルの拡張子はアーキテクチャ毎に ".o"
,".dll"
などと異なっていますが,feature名の拡張子はいつも
.so
を用います.
requireは実際にロードした時には true
,既にロー
ドされている時にはfalse
を返します.またロードし
たfeatureの名前を(拡張子も含めて),変数
$"
に追加します.
select(reads[, writes[, excepts[, timeout]]])
`select(2)'を実行します. reads/writes/execptsには入 力待ちするIO (またはそのサブクラス)の インスタンスの配列をわたします.
timeoutは整数,
Float
,
Time
, または
nil
を指定します.nil
を指定した時
にはIOがレディ状態になるまで待ち続けます.
戻り値はtimeoutした時にはnil
を,そう
でないときは3要素の配列を返し,その各要素が入力/出力/例外待
ちのオブジェクトの配列です(指定した配列のサブセット).
sleep([sec])
sec秒だけプログラムの実行を停止します.
secに浮動小数点数を指定して1秒以下の指定もできます.
secが省略された場合,明示的に起こさない限り
(SIGALRM
または他threadからのrun
),
永久にスリープします.戻り値は実際にスリープした秒数です.
split([sep[, limit]])
変数$_に格納された文字列をsepで指定さ
れたパターンによってlimit個の要素に分割して配列に
格納します.
詳細はString#split
を参照してください.
sprintf(format...)
format(format...)
format文字列をC言語のsprintfと同じよ うに解釈し,引数をフォーマットした文字列を返します. format指定子はC言語のsprintfが受け付 けるものに加えて, %bを使うことができます.%bは数値の2進表示 を行ないます.Rubyには整数の大きさに上限がないので, %b, %o, %xに負の数を与えると(左側に無限に1が続 くとみなせるので)..fのような表示をします.絶対 値に符号を付けた形式で出力するためには%-x, %+x,% xのように指定します.
srand([seed])
rand
の乱数の
種を設定し,古い初期値を返します.初期値が省略
された時には現在の時間などを種にします.
sub(pattern[, replace])
sub!(pattern[, replace])
システム変数$_
の指す文字列内で
patternにマッチする最初の部分をreplaceに
置き換えた文字列を返します.引数replaceが省略され
た時にはイテレータとして動作し,ブロックを評価した結果で置換
を行います.sub!
は$_
の指している
文字列そのものを書き換えます.sub
は
$_
の値をコピーして,コピーの方を更新し,
$_
に代入します.
syscall(num, arg...)
numで指定された番号のシステムコールを実行します. 第2引数以降をシステムコールの引数として渡します.引数は文字 列または整数でなければなりません.
system(command...)
commandを実行して,成功した時(サブプロセスが
status 0で終了した時)には真を,失敗した時には偽を返します.
終了ステータスは変数$?
で参照できます.
複数の引数を指定した場合は,shellを経由せずに実行されます. この場合には空白やshellのメタキャラクタもそのまま渡されます.
その他の挙動に関してはexec
を参照してください.
test(cmd, file [, file])
ファイルテストを行います.cmdは以下に示す文字列リテラル です.
?r
?w
?x
?o
?R
?W
?X
?O
?e
?z
?s
?f
?d
?l
?p
?S
?b
?c
?u
?g
?k
?M
?A
?C
?=
?>
?<
?-
throw(tag[, value])
同じtagを指定したcatch
まで一気に脱出します.もし,そのようなcatch
がな
い時にはプログラムの実行を終了させます.tagは文字
列またはシンボルで指定します.catch
は同じメソッ
ド内に存在する必要はありません.value は
catch
の戻り値になります.省略された時の
valueはnil
になります.
trace_var(variable, command)
trace_var(variable) {...}
varで指定された大域変数の値が変更された時に評価さ
れる文字列,または手続きオブジェクトをcommandで指
定します.traceを解除するためにはcommandに
nil
を指定するか,
untrace_var
を用います.
trap(signal, command)
trap(signal) {...}
signalで指定された割り込みにたいするハンドラとし てcommandを指定します.signalはシグナ ル名かシグナルの番号,commandは文字列,またはブロッ クで指定します.commandとして"SIG_IGN"または "IGNORE"を指定した時にはそのシグナルを無視しま す(可能ならば)."SIG_DFL"または "DEFAULT"を指定した時はデフォルトの動作を行ないます. "EXIT"を指定した時はシグナルを受け取ると(終了処 理を行った後),exit status 0で終了します.
シグナル 0 または "EXIT" はプログ
ラムの終了を表しています."EXIT"
のハンドラはイ
ンタプリタの実行終了直前に呼び出されます.
untrace_var(variable[, command])
variableに対するcommandで指定したtrace
を解除します.commandを省略した場合や
commandとしてnil
を指定した場合には
varに対する全てのtraceを解除します.削除された
traceとして指定されていたオブジェクトを配列にいれて返します.