运算符与表达式
算术/比较/逻辑运算符、<=> 太空船、||= 条件赋值、.. ... 范围
运算符与表达式
Ruby 运算符大多直观,但有特色:<=> 太空船、||= 条件赋值、../... 范围、&. 安全导航。
学完本章你将: 掌握算术/比较/逻辑运算符、特色运算符。
基本运算符
ruby
a, b = 10, 3
a + b # 13
a - b # 7
a * b # 30
a / b # 3 (整数除法)
a / b.to_f # 3.333...(转浮点)
a ** b # 1000 (10^3)
a % b # 1
Ruby 特色运算符
ruby
# <=> 太空船(返回 -1/0/1)
5 <=> 3 # 1
3 <=> 5 # -1
3 <=> 3 # 0
# ||= 条件赋值
x = nil
x ||= 42 # x = 42(只在 nil/false 时赋值)
# 范围
(1..5).to_a # [1, 2, 3, 4, 5](含末尾)
(1...5).to_a # [1, 2, 3, 4](不含末尾)
# &. 安全导航(避免 NoMethodError on nil)
user&.address&.city # user 或 address 为 nil 时返回 nil
# 逻辑运算符
a && b # 与
a || b # 或
!a # 非
not a # 非(优先级低)
并行赋值与 splat
ruby
a, b, *c = 1, 2, 3, 4, 5
# a=1, b=2, c=[3,4,5]
# 收集关键字参数
def method(**options)
options[:key]
end