一、range对象
range对象有两个点和三个点的区间的区别:
1.两个点的range对象
在range对象中使用两个点表示包含两端的元素
例如,1..10
就表示包含从1到10的所有整数元素
1..10
=> 1..10
(1..10).to_a
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
2.三个点的range对象
在range对象中使用三个点表示不包含两端的元素
例如:"a"..."g"
表示从a到g的英文字母元素(不包含a和g)
>> "a"..."g"
=> "a"..."g"
>> ("a"..."g").to_a
=> ["a", "b", "c", "d", "e", "f"]
二、=>符号的用途
1.在hash里分隔键和值
如:
{:a => 1, :b => 2}
2.用在异常处理语法里进行赋值
begin # 异常处理语法
#代码
rescue ArgumentError => e # 若上面代码触发ArgumentError,则赋值给e
#代码
end
三、ruby中的rescue快捷异常处理语法
A rescue B
这种语法是ruby中的一种快捷的异常处理语法,它的意思是:若rescue左边的表达式A触发异常,则对rescue右边的表达式B求值
例如:
def devide(a,b)
num = a / b rescue 0
return num
end
上述代码将a / b
视为表达式A,将0视为表达式B。
当 b为0的时候,表达式A实际上会出错,这个时候将执行表达式B,所以num的值为0
devide(1,0)
=> 0
devide(2,1)
=>2
四、ruby中<=>符号的作用
<=>符号的两端会有两个表达式。
例如:a <=>b
<=>符号在不同场景下共有四种返回结果:
- 当a 小于 b时,将返回-1
- 当a 大于 b时,将返回1
- 当a 等于 b时,将返回0
- 无意义的比较(比如不同对象的比较),将返回nil
>> 1 <=> 2
=> -1
>> 2 <=> 1
=> 1
>> "ab" <=> "ab"
=> 0
>> 123 <=> "ab"
=> nil
>>
网友评论