📜  Ruby-预定义变量

📅  最后修改于: 2020-10-16 06:09:26             🧑  作者: Mango


Ruby的预定义变量会影响整个程序的行为,因此不建议在库中使用它们。

大多数预定义变量中的值可以通过其他方式访问。

下表列出了所有Ruby的预定义变量。

Sr.No. Variable Name & Description
1

$!

The last exception object raised. The exception object can also be accessed using => in rescue clause.

2

$@

The stack backtrace for the last exception raised. The stack backtrace information can retrieved by Exception#backtrace method of the last exception.

3

$/

The input record separator (newline by default). gets, readline, etc., take their input record separator as optional argument.

4

$\

The output record separator (nil by default).

5

$,

The output separator between the arguments to print and Array#join (nil by default). You can specify separator explicitly to Array#join.

6

$;

The default separator for split (nil by default). You can specify separator explicitly for String#split.

7

$.

The number of the last line read from the current input file. Equivalent to ARGF.lineno.

8

$<

Synonym for ARGF.

9

$>

Synonym for $defout.

10

$0

The name of the current Ruby program being executed.

11

$$

The process pid of the current Ruby program being executed.

12

$?

The exit status of the last process terminated.

13

$:

Synonym for $LOAD_PATH.

14

$DEBUG

True if the -d or –debug command-line option is specified.

15

$defout

The destination output for print and printf ($stdout by default).

16

$F

The variable that receives the output from split when -a is specified. This variable is set if the -a command-line option is specified along with the -p or -n option.

17

$FILENAME

The name of the file currently being read from ARGF. Equivalent to ARGF.filename.

18

$LOAD_PATH

An array holding the directories to be searched when loading files with the load and require methods.

19

$SAFE

The security level

0 → No checks are performed on externally supplied (tainted) data. (default)

1 → Potentially dangerous operations using tainted data are forbidden.

2 → Potentially dangerous operations on processes and files are forbidden.

3 → All newly created objects are considered tainted.

4 → Modification of global data is forbidden.

20

$stdin

Standard input (STDIN by default).

21

$stdout

Standard output (STDOUT by default).

22

$stderr

Standard error (STDERR by default).

23

$VERBOSE

True if the -v, -w, or –verbose command-line option is specified.

24

$- x

The value of interpreter option -x (x=0, a, d, F, i, K, l, p, v). These options are listed below

25

$-0

The value of interpreter option -x and alias of $/.

26

$-a

The value of interpreter option -x and true if option -a is set. Read-only.

27

$-d

The value of interpreter option -x and alias of $DEBUG

28

$-F

The value of interpreter option -x and alias of $;.

29

$-i

The value of interpreter option -x and in in-place-edit mode, holds the extension, otherwise nil. Can enable or disable in-place-edit mode.

30

$-I

The value of interpreter option -x and alias of $:.

31

$-l

The value of interpreter option -x and true if option -lis set. Read-only.

32

$-p

The value of interpreter option -x and true if option -pis set. Read-only.

33

$_

The local variable, last string read by gets or readline in the current scope.

34

$~

The local variable, MatchData relating to the last match. Regex#match method returns the last match information.

35

$ n ($1, $2, $3…)

The string matched in the nth group of the last pattern match. Equivalent to m[n], where m is a MatchData object.

36

$&

The string matched in the last pattern match. Equivalent to m[0], where m is a MatchData object.

37

$`

The string preceding the match in the last pattern match. Equivalent to m.pre_match, where m is a MatchData object.

38

$’

The string following the match in the last pattern match. Equivalent to m.post_match, where m is a MatchData object.

39

$+

The string corresponding to the last successfully matched group in the last pattern match.