Ruby-組み込み関数
カーネルモジュールはObjectクラスに含まれているため、そのメソッドはRubyプログラムのどこからでも使用できます。受信機なしで呼び出すことができます(関数形式)。したがって、それらはしばしば関数と呼ばれます。
シニア番号 | 方法と説明 |
---|---|
1 | abort プログラムを終了します。例外が発生した場合(つまり、$!がnilでない場合)、そのエラーメッセージが表示されます。 |
2 | Array( obj) to_aryまたはto_aを使用して配列に変換した後、objを返します。 |
3 | at_exit {...} プログラムの終了時に実行するブロックを登録します。ENDステートメントに似ていますが、ENDステートメントはブロックを1回だけ登録します。 |
4 | autoload( classname, file) 初めて使用するときにファイルからロードするクラスクラス名を登録します。クラス名は文字列または記号です。 |
5 | binding 現在の変数とメソッドのバインディングを返します。結合返されたオブジェクトが渡されてもよいevalの第2引数の方法。 |
6 | block_given? メソッドがブロックで呼び出された場合はtrueを返します。 |
7 | callcc {| c|...} 通過継続ブロックにオブジェクトCを、ブロックを実行します。callccは、グローバル出口またはループ構造に使用できます。 |
8 | caller([ n]) file:line形式の文字列の配列で現在の実行スタックを返します。nが指定されている場合、n番目のレベルから下のスタックエントリを返します。 |
9 | catch( tag) {...} ブロックの実行中に呼び出されたスローによって非ローカル出口をキャッチします。 |
10 | chomp([ rs = $/]) 変数の値を返します $_ with the ending newline removed, assigning the result back to $_。改行文字列の値はrsで指定できます。 |
11 | chomp!([ rs = $/]) $ _から改行を削除し、その場で文字列を変更します。 |
12 | chop の値を返します $_ with its last character (one byte) removed, assigning the result back to $_。 |
13 | chop! $ _から最後の文字を削除し、その場で文字列を変更します。 |
14 | eval( str[, scope[, file, line]]) strをRubyコードとして実行します。評価を実行するバインディングは、スコープで指定できます。コンパイルするコードのファイル名と行番号は、ファイルと行を使用して指定できます。 |
15 | exec( cmd[, arg...]) コマンドcmdを実行して、現在のプロセスを置き換えます。複数の引数が指定されている場合、コマンドはシェル展開なしで実行されます。 |
16 | exit([ result = 0]) プログラムを終了し、ステータスコードとして結果が返されます。 |
17 | exit!([ result = 0]) 処理プログラムバイパス出口を殺すような保証、等 |
18 | fail(...) raise(...)を参照してください |
19 | Float( obj) floatに変換した後にobjを返します。数値オブジェクトは直接変換されます。nilは0.0に変換されます。文字列は、0x、0bの基数プレフィックスを考慮して変換されます。残りはobj.to_fを使用して変換されます。 |
20 | fork fork {...} 子プロセスを作成します。nilは子プロセスで返され、子プロセスのID(整数)は親プロセスで返されます。ブロックが指定されている場合、そのブロックは子プロセスで実行されます。 |
21 | format( fmt[, arg...]) sprintfを参照してください。 |
22 | gets([ rs = $/]) コマンドラインまたは標準入力から1行で指定されたファイル名を読み取ります。レコード区切り文字列は、rsを使用して明示的に指定できます。 |
23 | global_variables グローバル変数名の配列を返します。 |
24 | gsub( x, y) gsub( x) {...} のxに一致するすべての文字列を置き換えます $_ with y. If a block is specified, matched strings are replaced with the result of the block. The modified result is assigned to $_。 |
25 | gsub!( x, y) gsub!( x) {...} 文字列がその場で変更されることを除いて、gsubと同じ置換を実行します。 |
26 | Integer( obj) 整数に変換した後、objを返します。数値オブジェクトは直接変換されます。nilは0に変換されます。文字列は、0x、0bの基数プレフィックスを考慮して変換されます。残りはobj.to_iを使用して変換されます。 |
27 | lambda {| x|...} proc {| x|...} lambda proc ブロックをProcオブジェクトに変換します。ブロックが指定されていない場合、呼び出し元のメソッドに関連付けられているブロックが変換されます。 |
28 | load( file[, private = false]) ファイルからRubyプログラムをロードします。requireとは異なり、拡張ライブラリはロードされません。場合は、民間である真、プログラムは、このように呼び出しプログラムの名前空間を保護し、匿名のモジュールにロードされます。 |
29 | local_variables ローカル変数名の配列を返します。 |
30 | loop {...} コードのブロックを繰り返します。 |
31 | open( path[, mode = "r"]) open( path[, mode = "r"]) {| f|...} ファイルを開きます。ブロックが指定されている場合、ブロックは、開かれたストリームを引数として渡して実行されます。ブロックが終了すると、ファイルは自動的に閉じられます。パスがパイプ|で始まる場合、次の文字列がコマンドとして実行され、そのプロセスに関連付けられたストリームが返されます。 |
32 | p( obj) inspectメソッドを使用してobjを表示します(多くの場合、デバッグに使用されます)。 |
33 | print([ arg...]) argを$ defoutに出力します。引数が指定されていない場合、$ _の値が出力されます。 |
34 | printf( fmt[, arg...]) sprintfを使用してfmtに従ってargをフォーマットし、結果を$ defoutに出力します。フォーマットの仕様については、sprintfを参照してください。 |
35 | proc {| x|...} proc lamdaを参照してください。 |
36 | putc( c) デフォルトの出力($ defout)に1文字を出力します。 |
37 | puts([ str]) 文字列をデフォルトの出力($ defout)に出力します。文字列が改行で終わっていない場合は、文字列に改行が追加されます。 |
38 | raise(...) fail(...) 例外を発生させます。例外クラスが指定されていない場合、RuntimeErrorを想定します。レスキュー句で引数なしでraiseを呼び出すと、例外が再発生します。レスキュー句の外でこれを行うと、メッセージのないRuntimeErrorが発生します。fail レイズの廃止された名前です。 |
39 | rand([ max = 0]) 0以上max未満の疑似乱数を生成します。maxが指定されていないか、0に設定されている場合、乱数は0以上1未満の浮動小数点数として返されます。srandを使用して疑似乱数ストリームを初期化できます。 |
40 | readline([ rs = $/]) EOFの読み取り時にEOFError例外が発生することを除いて、getsと同等です。 |
41 | readlines([ rs = $/]) コマンドライン引数として指定されたファイル名または標準入力の内容のいずれかを保持する文字列の配列を返します。 |
42 | require( lib) 最初に呼び出されたときにライブラリ(拡張ライブラリを含む)libをロードします。requireは同じライブラリを複数回ロードしません。libに拡張子が指定されていない場合、requireはそれに.rb、.soなどを追加しようとします。 |
43 | scan( re) scan( re) {|x|...} $ _。scanに相当します。 |
44 | select( reads[, writes = nil[, excepts = nil[, timeout = nil]]]) IOオブジェクトの配列として渡される、入力、出力、および例外の3つのタイプのIOオブジェクトのステータスの変化をチェックします。チェックする必要のない引数にはnilが渡されます。ステータスが変更されたIOオブジェクトの配列を含む3要素の配列が返されます。nilはタイムアウト時に返されます。 |
45 | set_trace_func( proc) トレース用のハンドラーを設定します。procは、文字列またはprocオブジェクトの場合があります。set_trace_funcは、デバッガーとプロファイラーによって使用されます。 |
46 | sleep([ sec]) プログラムの実行を秒秒間中断します。secが指定されていない場合、プログラムは永久に中断されます。 |
47 | split([ sep[, max]]) $ _。splitに相当します。 |
48 | sprintf( fmt[, arg...]) format( fmt[, arg...]) argがfmtに従ってフォーマットされている文字列を返します。書式設定の仕様は、基本的にCプログラミング言語のsprintfの仕様と同じです。fmtの変換指定子(%の後に変換フィールド指定子が続く)は、対応する引数のフォーマットされた文字列に置き換えられます。提出された変換のリストは、次のセクションで以下に示されています。 |
49 | srand([ seed]) 乱数の配列を初期化します。シードが指定されていない場合、初期化はシードの時間およびその他のシステム情報を使用して実行されます。 |
50 | String( obj) obj.to_sを使用して文字列に変換した後、objを返します。 |
51 | syscall( sys[, arg...]) 番号sysで指定されたオペレーティングシステムコール関数を呼び出します。sysの数と意味はシステムに依存します。 |
52 | system( cmd[, arg...]) コマンドラインへの呼び出しとしてcmdを実行します。複数の引数が指定されている場合、コマンドはシェル拡張なしで直接実行されます。戻りステータスが0(成功)の場合、trueを返します。 |
53 | sub( x, y) sub( x) {...} $ _のxに一致する最初の文字列をyに置き換えます。ブロックが指定されている場合、一致した文字列はブロックの結果に置き換えられます。変更された結果は$ _に割り当てられます。 |
54 | sub!( x, y) sub!( x) {...} 文字列がその場で変更されることを除いて、subと同じ置換を実行します。 |
55 | test( test, f1[, f2]) 文字テストで指定されたさまざまなファイルテストを実行します。読みやすさを向上させるには、この関数ではなく、Fileクラスのメソッド(たとえば、File ::読み取り可能?)を使用する必要があります。引数のリストは、次のセクションで以下に示されています。 |
56 | throw( tag[, value = nil]) シンボルまたは文字列タグで待機しているcatch関数にジャンプします。valueは、catchによって使用される戻り値です。 |
57 | trace_var( var, cmd) trace_var( var) {...} グローバル変数のトレースを設定します。変数名はシンボルとして指定されます。cmdは文字列またはProcオブジェクトです。 |
58 | trap( sig, cmd) trap( sig) {...} シグナルハンドラーを設定します。sigは、文字列(SIGUSR1など)または整数です。信号名からSIGを省略できます。EXITシグナルまたはシグナル番号0のシグナルハンドラーは、プロセス終了の直前に呼び出されます。 |
59 | untrace_var( var[, cmd]) グローバル変数のトレースを削除します。cmdが指定されている場合、そのコマンドのみが削除されます。 |
数の関数
数値に関連する組み込み関数のリストは次のとおりです。それらは次のように使用する必要があります-
#!/usr/bin/ruby
num = 12.40
puts num.floor # 12
puts num + 10 # 22.40
puts num.integer? # false as num is a float.
これにより、次の結果が生成されます-
12
22.4
false
シニア番号 | 方法と説明 |
---|---|
1 | n + num n - num n * num n / num 算術演算(加算、減算、乗算、除算)を実行します。 |
2 | n % num nのモジュラスを返します。 |
3 | n ** num べき乗。 |
4 | n.abs nの絶対値を返します。 |
5 | n.ceil n以上の最小の整数を返します。 |
6 | n.coerce( num) numとnを含む配列を返します。両方とも、相互に操作できるタイプに変換される可能性があります。数値演算子の自動型変換で使用されます。 |
7 | n.divmod( num) nをnumで割った商とモジュラスを含む配列を返します。 |
8 | n.floor n以下の最大の整数を返します。 |
9 | n.integer? nが整数の場合はtrueを返します。 |
10 | n.modulo( num) nをnumで除算し、商を床で丸めて得られたモジュラスを返します |
11 | n.nonzero? ゼロでない場合はnを返し、そうでない場合はnilを返します。 |
12 | n.remainder( num) 除算して得られた余りを返します n 沿って num商から小数を削除します。ザ・result そして n 常に同じ符号を持っています。 |
13 | n.round 最も近い整数に丸められたnを返します。 |
14 | n.truncate nを小数を削除した整数として返します。 |
15 | n.zero? nが0の場合、ゼロを返します。 |
16 | n & num n | num n ^ num ビット演算:AND、OR、XOR、および反転。 |
17 | n << num n >> num ビット単位の左シフトと右シフト。 |
18 | n[num] の値を返します num最下位ビットからのthビット、つまりn [0]。 |
19 | n.chr 文字コードの文字を含む文字列を返します n。 |
20 | n.next n.succ nに続く次の整数を返します。n +1に相当します。 |
21 | n.size のマシン表現のバイト数を返します n。 |
22 | n.step( upto, step) {|n| ...} からブロックを繰り返します n に upto、増分 step 毎回。 |
23 | n.times {|n| ...} ブロックを繰り返します n 回。 |
24 | n.to_f 変換します n浮動小数点数に。フロート変換は、正確な情報を失う可能性があります。 |
25 | n.to_int 戻り値 n 整数に変換した後。 |
フロートの関数
シニア番号 | 方法と説明 |
---|---|
1 | Float::induced_from(num) numを浮動小数点数に変換した結果を返します。 |
2 | f.finite? fが無限ではなく、f.nanがfalseの場合、trueを返します。 |
3 | f.infinite? fが正の無限大の場合は1、負の無限大の場合は-1、その他の場合はnilを返します。 |
4 | f.nan? fが有効なIEEE浮動小数点数でない場合はtrueを返します。 |
数学の関数
シニア番号 | 方法と説明 |
---|---|
1 | atan2( x, y) アークタンジェントを計算します。 |
2 | cos( x) xのコサインを計算します。 |
3 | exp( x) 指数関数(eをxの累乗)を計算します。 |
4 | frexp( x) xの名詞化された分数と指数を含む2要素配列を返します。 |
5 | ldexp( x, exp) xの2の値をexpの累乗で返します。 |
6 | log( x) xの自然対数を計算します。 |
7 | log10( x) xの常用対数を計算します。 |
8 | sin( x) xの正弦を計算します。 |
9 | sqrt( x) xの平方根を返します。xは正でなければなりません。 |
10 | tan( x) xの接線を計算します。 |
変換フィールド指定子
関数sprintf(fmt [、arg ...])およびformat(fmt [、arg ...])は、argがfmtに従ってフォーマットされた文字列を返します。書式設定の仕様は、基本的にCプログラミング言語のsprintfの仕様と同じです。fmtの変換指定子(%の後に変換フィールド指定子が続く)は、対応する引数のフォーマットされた文字列に置き換えられます。
シニア番号 | 指定子と説明 |
---|---|
1 | b 2進整数 |
2 | c 1文字 |
3 | d,i 10進整数 |
4 | e 指数表記(例:2.44e6) |
5 | E 指数表記(例:2.44E6) |
6 | f 浮動小数点数(例:2.44) |
7 | g 指数が-4未満の場合は%eを使用し、それ以外の場合は%fを使用します。 |
8 | G 指数が-4未満の場合は%Eを使用し、それ以外の場合は%fを使用します。 |
9 | o 8進整数 |
10 | s to_sを使用して変換された文字列またはオブジェクト |
11 | u 符号なし10進整数 |
12.12。 | x 16進整数(例、39ff) |
13 | X 16進整数(例、39FF) |
以下は使用例です-
#!/usr/bin/ruby
str = sprintf("%s\n", "abc") # => "abc\n" (simplest form)
puts str
str = sprintf("d=%d", 42) # => "d=42" (decimal output)
puts str
str = sprintf("%04x", 255) # => "00ff" (width 4, zero padded)
puts str
str = sprintf("%8s", "hello") # => " hello" (space padded)
puts str
str = sprintf("%.2s", "hello") # => "he" (trimmed by precision)
puts str
これにより、次の結果が生成されます-
abc
d = 42
00ff
hello
he
テスト関数の引数
関数test(test、f1 [、f2])は、文字テストで指定された次のファイルテストのいずれかを実行します。読みやすさを向上させるには、この関数ではなくFileクラスのメソッド(たとえば、File :: readable?)を使用する必要があります。
シニア番号 | 引数と説明 |
---|---|
1 | ?r f1は発信者の有効なuidで読み取り可能ですか? |
2 | ?w f1は発信者の有効なuidによって書き込み可能ですか? |
3 | ?x f1は呼び出し元の有効なuidによって実行可能ですか? |
4 | ?o f1は発信者の有効なuidによって所有されていますか? |
5 | ?R f1は発信者の実際のuidで読み取り可能ですか? |
6 | ?W f1は発信者の実際のuidで書き込み可能ですか? |
7 | ?X f1は呼び出し元の実際のuidで実行可能ですか? |
8 | ?O f1は発信者の実際のuidによって所有されていますか? |
9 | ?e f1は存在しますか? |
10 | ?z f1の長さはゼロですか? |
11 | ?s f1のファイルサイズ(0の場合はnil) |
12 | ?f f1は通常のファイルですか? |
13 | ?d f1はディレクトリですか? |
14 | ?l f1はシンボリックリンクですか? |
15 | ?p f1は名前付きパイプ(FIFO)ですか? |
16 | ?S f1はソケットですか? |
17 | ?b f1はブロックデバイスですか? |
18 | ?c f1はキャラクターデバイスですか? |
19 | ?u f1にはsetuidビットが設定されていますか? |
20 | ?g f1にはsetgidビットが設定されていますか? |
21 | ?k f1にはスティッキービットが設定されていますか? |
22 | ?M f1の最終変更時刻。 |
23 | ?A f1の最終アクセス時間。 |
24 | ?C f1の最後のiノード変更時間。 |
シニア番号 | 引数と説明 |
---|---|
1 | ?= f1とf2の変更時間は等しいですか? |
2 | ?> f1の変更時刻はf2よりも新しいですか? |
3 | ?< f1の修正時間はf2よりも古いですか? |
4 | ?- f1はf2へのハードリンクですか? |
以下は使用例です。main.rbが読み取り、書き込み、実行権限なしで存在すると仮定します-
#!/usr/bin/ruby
puts test(?r, "main.rb" ) # => true
puts test(?w, "main.rb" ) # => true
puts test(?x, "main.rb" ) # => false
これにより、次の結果が生成されます-
true
false
false