Scala集合架构与提取器详解
1. Scala集合架构要点
在将新的集合类完全集成到框架中时,需要注意以下几点:
1. 可变性选择 :决定集合是可变的还是不可变的。
2. 选择合适的基础特质 :为集合挑选恰当的基础特质。
3. 继承合适的实现特质 :继承合适的实现特质以实现大多数集合操作。
4. 提供隐式 CanBuildFrom :若希望 map
等操作返回自定义集合类型的实例,需在类的伴生对象中提供隐式的 CanBuildFrom
。
示例说明
给定一个函数参数,它处理前缀映射 res0
的键/值绑定并生成字符串对。映射的结果是一个前缀映射,此时值类型为 String
而非 Int
。若前缀映射中没有隐式的 canBuildFrom
,结果将只是一个普通的可变映射,而非前缀映射。
2. 提取器概述
提取器是 Scala 中一个强大的特性,它允许为现有类型定义新的模式,而这些模式无需遵循类型的内部表示。下面通过几个具体的例子来详细介绍提取器的使用。
2.1 提取电子邮件地址示例
假设需要分析表示电子邮件地址的字符串,传统方法是使用三个辅助函数: