Semicolons and newline characters are interpreted as ending of a statement. +, = or \ can be use as line continuation characters.
Comments
Single-line comments: Comments extend from # to the end of a line.
Multi-line comments:
=beginNote: '=begin' and '=end' must appear at the beginning of a line.
comments go here
=end
Integer literals: 123, 0123(octal), 0xf34(hex), 0b1123(binary), ?d(char code for 'd')
Float-point literals: 23.45, 3e4, 4E10, 5e+39
String literals:
double quotations: allow substitution and escape character sequences.
single quotations: don't allow substitution and escape character sequences except \\ and \'.
Adjacent strings are concatenated automatically. "abc""def" => "abcdef"
Command execution: `command`. The syntax is similar to the counterpart of bash. It allows substituion and escape character sequences. The output generated by execution of the command is converted to a string.
here documents:
| <<EOF content goes here EOF |
The string is in double quotations. |
| <<"EOF" content goes here EOF |
|
| <<'EOF' content goes here EOF |
The string is in single quotations. |
| <<`EOF` command goes here EOF |
The string is in back quotes. |
| <<-EOF command goes here EOF |
The delimiter ('EOF' in this example) needs not be at the beginning of a line. |
Symbols:
"A symbol is an object corresponding to an identifier or variable"
:name #symbol for 'name'
:$name #symbol for variable 'name'
Array
[], [1,2,3], [1,[2,3]]
%w(str1 str2 str3) => ["str1", "str2", "str3"]
Dictionary(Map, or Hash):
{key => value}
Regular expression:
/pattern/
/pattern/options
Alternatives:
%!string! and %Q!string! are equivalent to "string".
%q!string! is equivalent to 'string'
%x!command! is equivalent to `command`.
%r!pattern!
Variable
| Type | Description | Example | Note |
| global variables | can be accessed globally by and program. | $var | Uninitialized global variables are set to nil. |
| instance | variables that belong to an object. | @var | |
| class | variables that belong to a class. | @@var | Class variables must be initialized before they are accessed in methods. |
| contants | Constants as you know in other languages | Var | must begin with an upper case letter.May not be defined in methods. |
| local | Local variables. | var | must begin with a lowercase letter or _ |
Variable substitutions: #{varname}. E.g. #{filename}, #{@conf}, #{$stdin}
Variable assignments
var = value
var1, var2, ..., *varn = expr1, expr2, ..., *exprn
Operators:
expr?expr1:expr2The same as the tertiary operator in C/C++.
defined? varname#return a description about the variable/method or nil.
Control statements
| Name | Syntax | Alternatives |
| if | if cond [then] code [elsif cond [then] code] [else code] end |
code if cond |
| unless | unless cond [then] code [else code] end |
code unless cond |
| case | case expr [when expr [,expr ...] [then] code ]... [else code] end |
|
| while | while cond [do] code end |
(1)code while cond (2)begin code end while cond. Note: code is executed once before cond is evaluated. |
| until | until cond [do] code end |
(1) code until cond (2) begin code end until cond Note: code is executed once before cond is evaluated. |
| for | for var[, var2 ...] in expr [do] code end |
expr do |var [,var...]| code end |
| break | Break from look | |
| next | like continue in C++ | |
| redo | re-execute the loop body once without evaluation of conditional expression. | |
| retry | re-execute a call to a method | |
| begin | begin code [rescue [exception_class [, excep_cls...]] [=>var] [then] code ]... [else code ] [ensure code ] end |
Code in ensure clause is always executed. Code in else clause is executed only when no exceptions are raised. Code in rescue clause is executed when exception is caught. |
| rescue | code rescue expr | Evaluate the expr only if an exception is caught. |
| raise | raise exception_class, message raise exception_object raise message raise |
Raise an exception. To call raise in a rescue clause will re-raise the exception. |
| BEGIN | BEGIN{ code } |
Code to be executed before the program is run. |
| END | END{ code } |
Code to be executed when the interpreter quits. |

No comments:
Post a Comment