ruby的注释
行注释 #
块注释 =begin
。。。
=end
ruby的保留字
BEGIN class
ensure nil
self when
END
def false
not super
while
alias defined? for
or then
yield
and
do if
redo true
begin
else in
rescue undef
break elsif
module retry
unless
case end
next return until
变量 |
局部变量 |
|
实例变量 |
以@为开头,属于特定的对象,一般在类中用 |
类变量 |
以@@开头,在类的定义中定义类变量 类变量可以是被类、子类以及它们的实例所共享的全局变量 |
全局变量 |
以$为开头,在程序的任何地方可以引用 |
伪变量 |
self |
当前方法执行主体 |
nil |
NilClas的唯一实例 |
true |
TrueClass实例 |
false |
FalseClass实例 |
__FILE__ |
源名 |
__LINE__ |
行号 |
常量
以大写字母([A-Z])开始的标识符为常数。
常数的定义(和初始化)在赋值过程完成.
不能在方法中对常数进行定义.若对已定义的常数进行赋值的话,会出现警告信息.
若引用未定义的常数的话,则会引发NameError异常.
字面值
如数字1或字符串“hello”写入ruby中值都是。
表达整数 124
表达符号整数
-123
表达浮点数 123.45
表达浮点数
1.2e-4
表达16进制数 0xffff
表达二进制数
0b1001
表达8进制 0o377
表达字符asii码 ?a
表达控制码
?\C-a
表达Meta a的代码 ?\M-a
表达Meta-Control a 的代码 ?\M-\C-a
有趣一点是数字中间夹 _
下划线是作为阅读分清数字用,ruby会忽略它。
字符串字面值
双引号 反斜线表示法和展开式都是有效的
单引号
除了\\(反斜线本身)、\'(单引号)和行尾的\(忽略换行)以外,
不会对字符串内容作任何处理
字符串引号分隔之间留空白也被当作一个空格处理。
反斜线表示:
\t
Tab(0x09)
\n 换行(0x0a)
\r
\f 换页
\b
BackSpace
\a Bell
\e
Escape
\s 空白
\nnn 8进制表示
\xnn
16进制
\cx \C-x control字符,x为ascii码
\x
字符x本身
字符串中有如下形式,其中 #{表达式} 就是表达式
如下:
“this is #{$ruby}" ------->"this is
RUBY"
' this is #{$ruby}' -------->'this is
#{$ruby}'
"this is $ruby"
---------->"this is $ruby"
"this is #$ruby"
----------> "this is RUBY" 可以省略{}
批量字符串赋值
例子
print << EOS #(从这里开始)直到标识符 EOS
之前的部分就是字面值
this is test
next line
EOS
equal fellow :
print " this is test \n next line\n"
可以使用引号(""、''或``)将开始标签“<<标识符”中的标识符括起来。这时,集成字符串的性质将取决于您所选择的引号的种类。请参考下列,当您选择双引号时,其效果与不使用任何引号时的效果相同。
# 反斜线表示法和展开式都是有效的
print <<"EOS"
The price is #{$price}.
EOS
# 效果同上
print <<EOS
The price is #{$price}.
EOS
# 展开式无法工作
print <<'EOS'
The price is #{$price}.
EOS
# 执行命令
print <<`EOC`
date
diff test.c.org test.c
EOC
规范点,用双引号或不用是不会错。
数组表达式
例:
[1, 2, 3]
%w(a b c)
语法:
`[' 表达式`,' ... `]'
分别计算每个表达式的值,然后返回由这些值构成的数组。数组是Array类的实例。
当数组元素都是字符串字面值时,可以使用%表示法将数组写成其他形式。
每次对数组表达式进行计算时都会返回一个新的数组对象。
%w(a b c) ===== ["a", "b","c"]
%表示法,它就像一个定义任意分隔符号的前缀,
在字符串字面值、 命令输出、 正则表达式字面值、 数组表达式、 符号
中,
用这种以%开头的表达法。特别是当字符串或正则表达式中以非字符非数字(包含双引号(")、斜线(/)等)(它们是作为切分字面值时使用的字符)要素时,它可以减少反斜线(\)在代码中出现的次数。
% !STRING!
: 双引号中的字符串
%Q!STRING!
: 同上
%q!STRING!
: 单引号中的字符串
%x!STRING!
: 命令输出
%r!STRING!
: 正则表达式
%w!STRING!
: 字符串数组(以空白字符切分各元素)
%W!STRING!
: 字符串数组(以空白字符切分各元素)。展开式、反斜线表示法都有效(ruby 1.7 特性)
%s!STRING!
: 符号。展开式、反斜线表示法都无效(ruby 1.7
特性)
!
部分是任何非字母非数字的字符,包括换行。
若起始切分字符是括号("(","[","{","<")的话,则终止切分字符就是与其对应的括号。
若以括号作为切分字符的话,只要对应部分使用了对应的括号,就可以在其中的元素中使用与切分字符一样的括号。