Z
ZHANK
编程在线教程Ruby 教程运算符与表达式
入门基础

运算符与表达式

算术/比较/逻辑运算符、<=> 太空船、||= 条件赋值、.. ... 范围

运算符与表达式

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