Ruby-builtin-functions

提供:Dev Guides
移動先:案内検索

Ruby-組み込み関数

_Kernel_モジュールは_Object_クラスに含まれているため、そのメソッドはRubyプログラムのどこでも使用できます。 受信者なしで呼び出すことができます(機能フォーム)。 したがって、それらはしばしば関数と呼ばれます。

____組み込み関数の完全なリストは、参照用にここに記載されています-

Sr.No. Methods & Description
1

abort

プログラムを終了します。 例外が発生した場合(つまり、$! nilではない)、エラーメッセージが表示されます。

2

Array( obj)

to_aryまたはto_aを使用して配列に変換した後、objを返します。

3

at_exit \{…​}

プログラムの終了時に実行するブロックを登録します。 ENDステートメントに似ていますが、ENDステートメントはブロックを1回だけ登録します。

4

autoload( classname, file)

初めて使用されるときにファイルからロードされるクラスclassnameを登録します。 classnameは文字列またはシンボルです。

5

binding

現在の変数とメソッドのバインディングを返します。 返される_Binding_オブジェクトは、2番目の引数として_eval_メソッドに渡すことができます。

6

block_given?

メソッドが_block_で呼び出された場合、trueを返します。

7 *callcc \{

…​}*

_Continuation_オブジェクトcをブロックに渡し、ブロックを実行します。 _callcc_は、グローバル終了またはループ構造に使用できます。

8

caller([ n])

_file:line_の形式の文字列の配列で現在の実行スタックを返します。 nが指定されている場合、n番目のレベルからスタックエントリを返します。

9

catch( tag) \{…​}

ブロックの実行中に呼び出されたスローにより、非ローカル出口をキャッチします。

10

chomp([ rs = $/])

終了改行を削除した変数$ _の値を返し、結果を$ _に割り当てます。 改行文字列の値は、rsで指定できます。

11

chomp!([ rs = $/])

$ _から改行を削除し、所定の文字列を変更します。

12

chop

最後の文字(1バイト)を削除した$ _の値を返し、結果を$ _に割り当てます。

13

chop!

$ _から最後の文字を削除し、その場所の文字列を変更します。

14

eval( str[, scope[, file, line]])

_str_をRubyコードとして実行します。 評価を実行するバインディングは、_scope_で指定できます。 コンパイルするコードのファイル名と行番号は、_file_とlineを使用して指定できます。

15

exec( cmd[, arg…​])

コマンド_cmd_を実行して、現在のプロセスを置き換えます。 複数の引数が指定されている場合、コマンドはシェル展開なしで実行されます。

16

exit([ result = 0])

_result_がステータスコードとして返され、プログラムを終了します。

17

exit!([ result = 0])

_ensure_などの出口処理をバイパスしてプログラムを強制終了します。

18

fail(…​)

raise(…​)を参照

19

Float( obj)

objをfloatに変換した後に返します。 数値オブジェクトは直接変換されます。 nilは0.0に変換されます。文字列は、0x、0b基数プレフィックスを考慮して変換されます。 残りはobj.to_fを使用して変換されます。

20

fork

  • フォーク \{…​} *

子プロセスを作成します。 _nil_は子プロセスで返され、子プロセスのID(整数)は親プロセスで返されます。 ブロックが指定されている場合、子プロセスで実行されます。

21
  • format( fmt[, arg…​])*

sprintfを参照してください。

22

gets([ rs = $/])

コマンドラインまたは標準入力から1行で指定されたファイル名を読み取ります。 レコード区切り文字列は、rsで明示的に指定できます。

23

global_variables

グローバル変数名の配列を返します。

24

gsub( x, y)

  • gsub(x)\ {...}*

$ _のxに一致するすべての文字列をyに置き換えます。 ブロックが指定されている場合、一致した文字列はブロックの結果に置き換えられます。 変更された結果は$ _に割り当てられます。

25

gsub!( x, y)

  • gsub!(x)\ {...}*

文字列がその場で変更されることを除き、gsubと同じ置換を実行します。

26

Integer( obj)

objを整数に変換した後に返します。 数値オブジェクトは直接変換されます。 nilは0に変換されます。文字列は、0x、0b基数プレフィックスを考慮して変換されます。 残りはobj.to_iを使用して変換されます。

27 *lambda \{

…​}*

  • proc \ {
x

…​}*

  • ラムダ *

proc

ブロックを_Proc_オブジェクトに変換します。 ブロックが指定されていない場合、呼び出し元のメソッドに関連付けられているブロックが変換されます。

28
  • load( file[, private = false])*

_file_からRubyプログラムをロードします。 _require_とは異なり、拡張ライブラリはロードされません。 _private_が_true_の場合、プログラムは匿名モジュールにロードされるため、呼び出し元プログラムの名前空間が保護されます。

29

local_variables

ローカル変数名の配列を返します。

30

loop \{…​}

コードのブロックを繰り返します。

31

open( path[, mode = "r"])

  • open(path [、mode = "r"])\ {
f

…​}*

_file_を開きます。 ブロックが指定されている場合、ブロックは引数として渡された開かれたストリームで実行されます。 ブロックが終了すると、ファイルは自動的に閉じられます。 _path_がパイプ

で始まる場合、次の文字列がコマンドとして実行され、そのプロセスに関連付けられたストリームが返されます。 32

p( obj)

inspectメソッドを使用してobjを表示します(多くの場合、デバッグに使用されます)。

33

print([ arg…​])

argを_ $ defout_に出力します。 引数が指定されていない場合、$ _の値が出力されます。

34

printf( fmt[, arg…​])

sprintf_を使用して_fmt_に従ってargをフォーマットし、結果を $ defout_に出力します。 フォーマットの仕様については、sprintfを参照してください。

35
*proc \{

…​}*

proc

ラムダを参照してください。

36

putc( c)

デフォルトの出力(_ $ defout_)に1文字を出力します。

37

puts([ str])

文字列をデフォルトの出力(_ $ defout_)に出力します。 文字列が改行で終わらない場合、文字列に改行が追加されます。

38

raise(…​)

  • 失敗します(…​) *

例外を発生させます。 例外クラスが指定されていない場合は、_RuntimeError_を想定します。 _rescue_句で引数なしで_raise_を呼び出すと、例外が再度発生します。 レスキュー句の外側でこれを行うと、メッセージのない_RuntimeError_が発生します。* fail *は、raiseの廃止された名前です。

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)

  • スキャン(再)\ {
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秒間プログラムの実行を中断します。 secが指定されていない場合、プログラムは永久に中断されます。

47

split([ sep[, max]])

$ _。splitと同等です。

48

sprintf( fmt[, arg…​])

  • format(fmt [、arg …​]) *

argがfmtに従ってフォーマットされた文字列を返します。 フォーマットの仕様は、Cプログラミング言語のsprintfの仕様と本質的に同じです。 _fmt_の変換指定子(%の後に変換フィールド指定子)は、対応する引数のフォーマットされた文字列に置き換えられます。 提出された変換のリストを次のセクションで示します。

49
  • srand([ seed])*

乱数の配列を初期化します。 _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])

文字_test_で指定されたさまざまなファイルテストを実行します。 読みやすくするために、この関数ではなくFileクラスのメソッド(File
readable?など)を使用する必要があります。 引数のリストについては、次のセクションで説明します。
56

throw( tag[, value = nil])

シンボルまたは文字列_tag_で待機している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

数字の関数

以下は、数値に関連する組み込み関数のリストです。 彼らは次のように使用する必要があります-

#!/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

____仮定、 n は数字です-

Sr.No. Methods & Description
1

n PLUS 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で除算し、_floor_で商を四捨五入して得られたモジュラスを返します

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 *番目のビットの値、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

フロートの関数

____これは、特に浮動小数点数用のRuby組み込み関数のリストです。 浮動小数点数 f があると仮定します-

Sr.No. Methods & Description
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を返します。

数学のための関数

____これは、Ruby組み込み数学関数のリストです-

Sr.No. Methods & Description
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の10を底とする対数を計算します。

8

sin( x)

xの正弦を計算します。

9

sqrt( x)

xの平方根を返します。 xは正でなければなりません。

10

tan( x)

xのタンジェントを計算します。

変換フィールド指定子

関数_sprintf(fmt [、arg …​])およびformat(fmt [、arg …​])_は、argがfmtに従ってフォーマットされた文字列を返します。 フォーマットの仕様は、Cプログラミング言語のsprintfの仕様と本質的に同じです。 _fmt_の変換指定子(%の後に変換フィールド指定子)は、対応する引数のフォーマットされた文字列に置き換えられます。

____次の変換指定子は、Rubyの形式でサポートされています-

Sr.No. Specifier & Description
1

b

バイナリ整数

2

c

単一の文字

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.

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])_は、文字_test_で指定された次のファイルテストのいずれかを実行します。 読みやすさを改善するには、この関数ではなくFileクラスのメソッド(たとえば、File
readable?)を使用する必要があります。

____これは、1つの引数を持つファイルテストです-

Sr.No. Argument & Description
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ノード変更時刻。

____2つの引数を持つファイルテストは次のとおりです-

Sr.No. Argument & Description
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