Ruby编程:核心类使用与自定义类设计
1. Ruby核心集合类的使用
1.1 选择合适的集合类
Ruby的集合类是编程乐趣的来源之一。在大多数情况下,选择使用哪种集合类相当直接:
- 若需要一个简单的值列表,用于迭代,或将集合用作队列或栈,通常使用数组。
- 若需要将一个或多个对象映射到一个或多个对象,通常使用哈希。
- 若有一个大的对象列表,想查看给定对象是否包含在其中,通常使用集合。
在某些情况下,使用数组或哈希均可。例如,迭代小列表时:
# 数组方法
[[:foo, 1], [:bar, 3], [:baz, 7]].each do |sym, i|
# ...
end
# 哈希方法
{foo: 1, bar: 3, baz: 7}.each do |sym, i|
# ...
end
从设计角度看,由于不涉及索引操作,使用数组更简单。但在Ruby中,哈希方法语法更简洁,是惯用方式。
1.2 实现内存数据库示例
假设有专辑名称、曲目编号和艺术家名称的列表,同一专辑和曲目可能有多个艺术家。要设计一个简单的查找系统,根据专辑名称找到参与该专辑任何曲目的所有艺术家,根据专辑名称和曲目编号找到参与该特定曲目的艺术家。
1.2.1 多哈希方法
album_infos = 100.times.flat_map do |i|
10.times.map do |j|
["Al
超级会员免费看
订阅专栏 解锁全文
481

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



