【发布时间】:2013-02-02 01:32:18
【问题描述】:
假设我有一个这样的函数列表:
val funcList = List(func1: A => T, func2: B => T, func2: C => T)
(其中func1等在别处定义)
我想编写一个方法,该方法将获取一个值并根据确切类型将其匹配到正确的函数(匹配a: A 和func1: A => T),或者如果没有匹配的函数则抛出异常。
有没有简单的方法来做到这一点?
这类似于 PartialFunction 所做的,但我无法将 funcList 中的函数列表更改为 PartialFunctions。我在想我必须将函数隐式转换为一个特殊的类,该类知道它可以处理的类型并能够对其进行模式匹配(基本上将这些函数提升为专门的PartialFunction)。但是,我不知道如何识别每个函数的“域”。
谢谢。
【问题讨论】:
标签: scala