1.Ruby的代码块:放在{}或者do 。。。end之间的就是Ruby代码块,代码块只能出现在方法后面,要与方法最后一个参数同行,解释器
解释到代码块时并不执行代码块,只记下它的位置,然后回去执行前面的方法。
2.Ruby代码块不是对象,但能转成对象,方法有三:用&开头的参数(最后一个参数)接受一个代码块;Proc.new {};lambda {}
3.yield调用代码块,next para代码块返回para
4.迭代器:能反复执行跟在方法后面的代码块each;times;upto。。。
5.Ruby语言一切都有返回值,赋值语句返回左值,if语句有值:返回最后执行的语句的值。。。
6.Ruby语言中很多操作符都是方法,加法:a+b其实是:a.(b)的调用,可重写
7.并行赋值:x,y=y,x,嵌套赋值:x,*y=[1,2,3,4,5],还有:x ||= 1
8.Ruby中只有false和nil为假,其余都为真:0,空串。。
9.if语句(unless与if相反)
10.case语句
11.loop语句
12.1.upto(10){}...10.downto(1){}...1.step(100,3){}..
13.For..in语句
14.break退出循环,next相当于continue结束当次循环,redo重做当次循环(循环变量不变,其他的也许变了)
15.Ruby的方法定义:
16.在顶层定义的方法,成了Object类的一个实例方法
17.Ruby语言的方法定义是存放在Hash中,key是方法名,value是方法定义,所有定义重名方法会覆盖前一个方法
18.方法名中含有:!,=,?的有特殊含义:=表示可作为左值,?表示返回bool值
19.方法的返回值,return关键字可有可无,但用return关键字可返回多个值:return a,b,接收:x,y = method
20.Ruby中组织常量、方法、类的方式:模块(还可用模块来实现传说中的mixin功能)
21.Mixin功能能实现多继承,Comparable,Singleton,Enumerable。。。
22.require,load,include的功能