Scope defines where in a program a variable is accessible. Ruby has four types of variable scope, local,global, instance and class. In addition, Ruby has one constant type. Each variable type is declared by using a special character at the start of the variable name as outlined in the following table.
Name Begins With | Variable Scope |
---|---|
$ |
A global variable |
@ |
An instance variable |
[a-z] or _
|
A local variable |
[A-Z] |
A constant |
@@ |
A class variable |
It is useful to know, however, that a number of pre-defined global variables are available to you as a Ruby developer to obtain information about the Ruby environment. A brief summary of each of these variables is contained in the following table.
Variable Name | Variable Value |
---|---|
$@ |
The location of latest error |
$_ |
The string last read by gets
|
$. |
The line number last read by interpreter |
$& |
The string last matched by regexp |
$~ |
The last regexp match, as an array of subexpressions |
$ n
|
The nth subexpression in the last match (same as $~[ n] ) |
$= |
The case-insensitivity flag |
$/ |
The input record separator |
$\ |
The output record separator |
$0 |
The name of the ruby script file currently executing |
$* |
The command line arguments used to invoke the script |
$$ |
The Ruby interpreter's process ID |
$? |
The exit status of last executed child process |