一、注释与分行
Ruby中的注释有单行与多行两种,例如:
Ruby代码
puts
'以下是单行注释'
#
这行是单行注释,单行注释用"#"
=begin
多行注释可以用"=begin"和"=end"
实际上,这也是Ruby的内嵌文档(Rdoc)注释,类似javadoc,可以用命令ri从源文件生产文档。
=end
puts
'=begin
和
=end
之前的是多行注释'
puts '以下是单行注释' # 这行是单行注释,单行注释用"#" =begin 多行注释可以用"=begin"和"=end" 实际上,这也是Ruby的内嵌文档(Rdoc)注释,类似javadoc,可以用命令ri从源文件生产文档。 =end puts '=begin 和 =end 之前的是多行注释'
结果:
以下是单行注释
=begin 和 =end 之前的是多行注释
注:Rdoc是内嵌在ruby代码之中的,可以转换为html文档说明。类似javadoc。
ri是一个命令行程序,用来查看函数说明、类说明。函数说明、类说明应该放置在"=begin"和"=end"之中。"=begin"一定要写在行首,也就是说,这一行的前六个字符是"=begin",不允许有空格在这之前。
Ruby 中用分号";"来表示一个语句的结束。一行如果有多个语句,每个语句用分号隔开,而最后一个语句可以省略分号。换行符表示一行结束。
如果语句太长,可以用"\"连接行。例如:
Ruby代码
p
"行连接开始>>>"
\
"<<<结束"
p "行连接开始>>>" \ "<<<结束"
结果:
行连接开始>>><<<结束
二、关键字、运算符、分隔符
关键字、运算符、分隔符一起构成了一门编程语言的基本定义
Ruby中的常用分隔符如下:
符号
名称
用途
;
分号
用来分隔一行中的多个语句
()
圆括号
提高优先级;定义方法时容纳参数列表
" "
空格/分隔字符
在可省略"()"的地方代替"()"
,
逗号
隔开多个参数
.
点
将对象与它的方法隔开
::
双冒号
域作用符,将模块(类)与它的常量隔开
Ruby中的关键字如下:
模块定义:module
类定义: class
方法定义:def,undef
检查类型:defined?
条件语句:if,then,else,elsif,case,when,unless
循环语句:for,in,while,until,next,break,do,redo,retry,yield
逻辑判断:not,and,or
逻辑值: true,false
空值: nil
异常处理:rescue,ensure
对象引用:super,self
块的起始:begin/end
嵌入模块:BEGIN,END
文件相关:__FILE__,__LINE__
方法返回:return
别名: alias
注:BEGIN模块相当于C语言中的宏, END模块用来作一些收尾工作。有了require,include,应该取消BEGIN和END的语法定义。
ruby中的运算符如下:优先级(由高到低)
能否重写
运算符
描述
Y
[]、[]=
数组下标、数组元素赋值
Y
**
乘冥
Y
!、~、+、-
非、位非、一元加(正号)、负号
Y
*、/、%
乘、除、模
Y
+、-
加、减
Y
>>、<<
右移、左移
Y
&
位与
Y
^、|
位异或、位或
Y
<=、<、>、>=
小于等于、小于、大于、大于等于
Y
<=>、==、===、=~、!=、!~
各种相等判断(不能重写=~、!=、!~)
N
&&
短路与
N
||
短路或
N
..、...
区间的开始点到结束点
N
? :
三元条件运算符
N
=、%=、~=、/=、-=、+=、|=、&=、>>=、<<=、*=、&&=、||=、**=
各种赋值
N
defined?
检查类型
N
not
逻辑非
N
or、and
逻辑或、逻辑与
N
if、unless、while、until
判断与循环
N
begin、end
定义方法,类,模块的范围
注意:
值得注意的是,ruby中没有"++"、"--"一类的运算符,但可以通过"+=1"、"-=1"实现。
ruby标识符的一些约定:
局部变量以小写字母或者下划线开头
全局变量以美元符号开头。
实例变量以@开头
类变量以@@开头
常量或类名以大写字母开头。
ruby中的nil关键字很特别。nil表示一个与其他语言中null相类似的空集的概念。和其他语言不通的是,ruby在逻辑判断过程中,只有nul和false表示假,其他所有表达式都表示真。