1,如果语句太长,可以用“\”链接
Ruby代码
1. p
2. "<<<结束"
结果:行连接开始>>><<<结束
2, ruby中的运算符如下:优先级(由高到低)
能否重写 运算符 描述
Y
Y ** 乘幂
Y !、~、+、- 非、位非、一元加(正号)、负号
Y *、/、% 乘、除、模
Y +、- 加、减
Y >>、<< 右移、左移
Y & 位与
Y ^、| 位异或、位或
Y <=、<、>、>= 小于等于、小于、大于、大于等于
Y <=>、==、!= 各种相等判断(不能重写=~、!=、!~)
Y =~、!~ 肯定匹配、否定匹配
Y === 用来比较case语句的目标和每个when从句的项
N && 短路与
N || 短路或
N ..、... 区间(含尾部元素)、区间(不含尾部元素)
N ? : 三元条件运算符
N =、%=、~=、/=、-=、+=、|=、&=、>>=、<<=、*=、&&=、||=、**= 各种赋值
N defined? 检查类型
N not 逻辑非
N or、and 逻辑或、逻辑与
N if、unless、while、until 判断与循环
N begin、end 定义方法,类,模块的范围
3,Ruby中的常用分隔符如下:
符号 名称 用途
; 分号 用来分隔一行中的多个语句
() 圆括号 提高优先级;定义方法时容纳参数列表
, 逗号 隔开多个参数
. 点 将对象与它的方法隔开
:: 双冒号 域作用符,将模块(类)与它的常量隔开
4,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
5,Ruby中的@%#$等各种千奇百怪的符号
(若标识符首位是小写字母或“_”,则该标识符就是局部变量或方法调用。)
(以大写字母([A-Z])开始的标识符是常数、类名或者模块名)
以@开始的变量是实例变量,它属于特定的对象。可以在类或子类的方法中引用实例变量。
*若引用尚未被初始化的实例变量的话,其值为nil。Ruby的实例变量无须声明,每个实例变量都是在第一次出现时动态加入对象。Ruby的实例变量通常在方法中定义类声明——当在方法里声明实例变量时,该实例变量实际上属于该方法所在类的实例,而不是属于该方法
class Apple
end
# 创建Apple类实例
apple = Apple.new
# 调用方法
apple.info2
apple.info1
以@@开始的变量是类变量。在类的定义中定义类变量,可以在类的特殊方法、实例方法等处对类变量进行引用/赋值:
class Foo
end
*类变量与常数的区别如下。
可以重复赋值(常数则会发出警告)
不能在类的外部直接引用(在继承类中则可以引用/赋值)
*类变量与类的实例变量的区别如下。
可在子类中引用/赋值
可在实例方法中引用/赋值
以$开始的变量是全局变量,可以在程序的任何地方加以引用(因此需要特别留意)。全局变量无需变量声明。引用尚未初始化的全局变量时,其值为 nil。
#号:用来调用一个方法
*号:若左边最后一个表达式前带*的话,则将右边多余的元素以数组的形式代入这个带*的表达式中。若右边没有多余元素的话,就把空数组代入其中。
*foo
foo,*bar = 1, 2, 3
*用在方法定义中表示可变长的变量
6,字串格式
\\ 输出 \ (back-slash)
\' 输出 ’
\" 输出 “
\a
\b 删除前一个字符 “it\b is sunday” =>”i is sunday”
\f 换行并且在紧跟第一行后面输出
\n 换行
\r 删除前一个单词 “it\r is sunday” => “ is sunday”
\t 输出两个空格
\v 换行并且在紧跟第一行后面输出
|
|