#!/usr/bin/ruby -w
print <<EOF
This is the first way of creating
her document ie. multiple line string.
EOF
print <<"EOF"; # same as above by www.yiibai.com
This is the second way of creating
her document ie. multiple line string.
EOF
print <<`EOC` # execute commands
echo hi there
echo lo there
EOC
print <<"foo", <<"bar" # you can stack them
I said foo.
foo
I said bar.
bar
Ruby数据类型:
基本类型是数字,字符串,范围,数组和哈希值,.
Ruby中的整数:
123 # Fixnum decimal
1_6889 # Fixnum decimal with underline
-5000 # Negative Fixnum
0377 # octal
0xee # hexadecimal
0b1011011 # binary
?b # character code for 'b'
?\n # code for a newline (0x0a)
12345678901234567890 # Bignum
Ruby中的浮点数:
1023.4 # floating point value
1.0e6 # scientific notation
4E20 # dot not required
4e+20 # sign before exponential
字符串常量:
Ruby字符串简单的8位字节的序列,他们是String类的对象.
'VariableName': No interpolation will be done
"#{VariableName} and Backslashes \n:" Interpolation will be done
%q(VariableName): No interpolation will be done
%Q(VariableName and Backslashes \n): Interpolation will be done
%(VariableName and Backslashes \n): Interpolation will be done
`echo command interpretation with interpolation and backslashes`
%x(echo command interpretation with interpolation and backslashes)
反斜线符号:
以下是由Ruby支持反斜线符号列表:
Notation
Character represented
\n
Newline (0x0a)
\r
Carriage return (0x0d)
\f
Formfeed (0x0c)
\b
Backspace (0x08)
\a
Bell (0x07)
\e
Escape (0x1b)
\s
Space (0x20)
\nnn
Octal notation (n being 0-7)
\xnn
Hexadecimal notation (n being 0-9, a-f, or A-F)
\cx, \C-x
Control-x
\M-x
Meta-x (c | 0x80)
\M-\C-x
Meta-Control-x
\x
Character x
Ruby数组:
创建对象引用方括号内放置一个逗号分隔的一系列Ruby数组的文字。一个被忽略尾随逗号.
例子:
#!/usr/bin/ruby
ary = [ "Ali", 10, 3.14, "This is a string", "last element", ]
ary.each do |i|
puts i
end
#!/usr/bin/ruby
(10..15).each do |n|
print n, ' '
end
这将产生以下结果:
10 11 12 13 14 15
变量类型:
$global_variable(全局变量)
@@class_variable(类变量)
@instance_variable
[OtherClass::]CONSTANT
local_variable
Ruby的伪变量:
他们是特殊的变量,局部变量的外观,但像常数。你不能指定任何这些变量的值.
self: The receiver object of the current method.
true: Value representing true.
false: Value representing false.
nil: Value representing undefined.
__FILE__: The name of the current source file.
__LINE__: The current line number in the source file.
Ruby的预定义变量:
下表列出了所有Ruby的预定义变量.
Variable Name
Description
$!
The last exception object raised. The exception object can also be accessed using => in rescue clause.
$@
The stack backtrace for the last exception raised. The stack backtrace information can retrieved by Exception#backtrace method of the last exception.
$/
The input record separator (newline by default). gets, readline,etc., take their input record separator as optional argument.
$\
The output record separator (nil by default).
$,
The output separator between the arguments to print and Array#join (nil by default). You can specify separator explicitly to Array#join.
$;
The default separator for split (nil by default). You can specify separator explicitly for String#split.
$.
The number of the last line read from the current input file. Equivalent to ARGF.lineno.
$<
Synonym for ARGF.
$>
Synonym for $defout.
$0
The name of the current Ruby program being executed.
$$
The process pid of the current Ruby program being executed.
$?
The exit status of the last process terminated.
$:
Synonym for $LOAD_PATH.
$DEBUG
True if the -d or --debug command-line option is specified.
$defout
The destination output for print and printf ($stdout by default).
$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.
$FILENAME
The name of the file currently being read from ARGF. Equivalent to ARGF.filename.
$LOAD_PATH
An array holding the directories to be searched when loading files with the load and require methods.
$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.
$stdin
Standard input (STDIN by default).
$stdout
Standard output (STDOUT by default).
$stderr
Standard error (STDERR by default).
$VERBOSE
True if the -v, -w, or --verbose command-line option is specified.
$- x
The value of interpreter option -x (x=0, a, d, F, i, K, l, p, v). These options are listed below
$-0
The value of interpreter option -x and alias of $/.
$-a
The value of interpreter option -x and true if option -a is set. Read-only.
$-d
The value of interpreter option -x and alias of $DEBUG
$-F
The value of interpreter option -x and alias of $;.
$-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.
$-I
The value of interpreter option -x and alias of $:.
$-l
The value of interpreter option -x and true if option -lis set. Read-only.
$-p
The value of interpreter option -x and true if option -pis set. Read-only.
$_
The local variable, last string read by gets or readline in the current scope.
$~
The local variable, MatchData relating to the last match. Regex#match method returns the last match information.
$ 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.
$&
The string matched in the last pattern match. Equivalent to m[0], where m is a MatchData object.
$`
The string preceding the match in the last pattern match. Equivalent to m.pre_match, where m is a MatchData object.
$'
The string following the match in the last pattern match. Equivalent to m.post_match, where m is a MatchData object.
$+
The string corresponding to the last successfully matched group in the last pattern match.
$+
The string corresponding to the last successfully matched group in the last pattern match.
Ruby预定义的常量:
下表列出了所有Ruby的预定义常量.
注: TRUE, FALSE 和 NIL 无是向后兼容的。这是最好用 true, false, and nil.
Constant Name
Description
TRUE
Synonym for true.
FALSE
Synonym for false.
NIL
Synonym for nil.
ARGF
An object providing access to virtual concatenation of files passed as command-line arguments or standard input if there are no command-line arguments. A synonym for $<.
ARGV
An array containing the command-line arguments passed to the program. A synonym for $*.
DATA
An input stream for reading the lines of code following the __END__ directive. Not defined if __END__ isn't present in code.
ENV
A hash-like object containing the program's environment variables. ENV can be handled as a hash.
RUBY_PLATFORM
A string indicating the platform of the Ruby interpreter.
RUBY_RELEASE_DATE
A string indicating the release date of the Ruby interpreter
RUBY_VERSION
A string indicating the version of the Ruby interpreter.
STDERR
Standard error output stream. Default value of $stderr.
STDIN
Standard input stream. Default value of $stdin.
STDOUT
Standard output stream. Default value of $stdout.
TOPLEVEL_BINDING
A Binding object at Ruby's top level.
正则表达式:
语法:
/pattern/
/pattern/im # option can be specified
%r!/usr/local! # general delimited regular expression
修饰符:
Modifier
Description
i
Ignore case when matching text.
o
Perform #{} interpolations only once, the first time the regexp literal is evaluated.
x
Ignores whitespace and allows comments in regular expressions
m
Matches multiple lines, recognizing newlines as normal characters
u,e,s,n
Interpret the regexp as Unicode (UTF-8), EUC, SJIS, or ASCII. If none of these modifiers is specified, the regular expression is assumed to use the source encoding.
各种模式:
Pattern
Description
^
Matches beginning of line.
$
Matches end of line.
.
Matches any single character except newline. Using m option allows it to match newline as well.
[...]
Matches any single character in brackets.
[^...]
Matches any single character not in brackets
re*
Matches 0 or more occurrences of preceding expression.
re+
Matches 0 or 1 occurrence of preceding expression.
re{ n}
Matches exactly n number of occurrences of preceding expression.
re{ n,}
Matches n or more occurrences of preceding expression.
re{ n, m}
Matches at least n and at most m occurrences of preceding expression.
a| b
Matches either a or b.
(re)
Groups regular expressions and remembers matched text.
(?imx)
Temporarily toggles on i, m, or x options within a regular expression. If in parentheses, only that area is affected.
(?-imx)
Temporarily toggles off i, m, or x options within a regular expression. If in parentheses, only that area is affected.
(?: re)
Groups regular expressions without remembering matched text.
(?imx: re)
Temporarily toggles on i, m, or x options within parentheses.
(?-imx: re)
Temporarily toggles off i, m, or x options within parentheses.
(?#...)
Comment.
(?= re)
Specifies position using a pattern. Doesn't have a range.
(?! re)
Specifies position using pattern negation. Doesn't have a range.
(?> re)
Matches independent pattern without backtracking.
\w
Matches word characters.
\W
Matches nonword characters.
\s
Matches whitespace. Equivalent to [\t\n\r\f].
\S
Matches nonwhitespace.
\d
Matches digits. Equivalent to [0-9].
\D
Matches nondigits.
\A
Matches beginning of string.
\Z
Matches end of string. If a newline exists, it matches just before newline.
\z
Matches end of string.
\G
Matches point where last match finished.
\b
Matches word boundaries when outside brackets. Matches backspace (0x08) when inside brackets.
\B
Matches nonword boundaries.
\n, \t, etc.
Matches newlines, carriage returns, tabs, etc.
\1...\9
Matches nth grouped subexpression.
\10
Matches nth grouped subexpression if it matched already. Otherwise refers to the octal representation of a character code.
Read-only mode. The file pointer is placed at the beginning of the file. This is the default mode.
r+
Read-write mode. The file pointer will be at the beginning of the file.
w
Write-only mode. Overwrites the file if the file exists. If the file does not exist, creates a new file for writing.
w+
Read-write mode. Overwrites the existing file if the file exists. If the file does not exist, creates a new file for reading and writing.
a
Write-only mode. The file pointer is at the end of the file if the file exists. That is, the file is in the append mode. If the file does not exist, it creates a new file for writing.
a+
Read and write mode. The file pointer is at the end of the file if the file exists. The file opens in the append mode. If the file does not exist, it creates a new file for reading and writing.
请发表评论