器-说明:ruby中的一些小知识点

一、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
>>

你可能感兴趣的:(器-说明:ruby中的一些小知识点)