假设我正在执行以下操作:
val a = complicatedChainOfSteps("c")
val b = complicatedChainOfSteps("d")
我有兴趣编写如下代码(以减少代码和复制/粘贴错误):
val Seq(a, b) = Seq("c", "d").map(complicatedChainOfSteps(_))
但让编译器确保元素的数量匹配,所以以下不要编译:
val Seq(a, b) = Seq("c", "d", "e").map(s => s + s)
val Seq(a, b) = Seq("c").map(s => s + s)
我知道使用元组来确保元素的数量匹配在执行多个赋值时起作用(例如val (a, b) = ("c", "d")
),但是你不能映射元组(这是有意义的,因为它们具有异构类型)。 / p>
我也知道我可以为2个元素的序列和3个元素的序列或者其他任何东西定义我自己的类型,但是有没有方便的内置方法来做到这一点?如果不是,那么定义一个特定数量元素序列的类型的最简单方法是什么?