Ruby编程:模式匹配与异常处理详解
1. Ruby模式匹配初步
在 Ruby 中,模式匹配是一项强大的功能,能让代码更加简洁和易读。以下是一个简单的模式匹配示例:
{rank:, suit:}
end
end
def pick_a_card(cards)
cards = cards.sort_by(&:rank)
case cards
in [{rank:}, {rank: ^(rank + 1)}, {rank: ^(rank+ 2)}] if rank > 6
"You have three consecutive high cards"
else
"You have no interesting cards,"
end
end
puts pick_a_card([
Card.new(7, "Hearts"),
Card.new(8, "Diamonds"),
Card.new(9, "Clubs")
])
运行上述代码会输出:
You have three consecutive high cards
这是因为模式匹配是针对 deconstruct_keys 方法返回的哈希进行的。 deconstruct_keys 方法通常会接收一个参数,在很多情况下这个参数可以忽略。这个参数的值是模式实际查询的键集合,其目的是为了性能考虑,允许返回对象的一个子集。对于简单情况,子集操作可能比创建哈希更昂贵。如果参数为 <
超级会员免费看
订阅专栏 解锁全文
71

被折叠的 条评论
为什么被折叠?



