【发布时间】:2017-04-02 08:23:58
【问题描述】:
我想在 Scala 中创建和使用 Seq[T] 集合
并确保它只使用一种类型。所以如果我使用:
val l = List(1, 2, 2.0)
应该出现编译时错误 - List 元素应该都是
Double 或全部Int。
【问题讨论】:
-
也许你会觉得这很有趣:eed3si9n.com/stricter-scala-with-ynolub
-
从响应中,似乎避免 LUB 要求我在声明集合时指定类型或更改编译器行为。我在想一些神奇的类型级编程可以解决这个问题。感谢 @Jubobs 和 stefanobaghino 的帮助。
-
对于任何 fixed 数量的参数都有一种标准方法,但我认为没有一个用于可变参数的方法。
-
是的。我已经用两个参数和 =:= 类型级运算符完成了这项工作。对于收藏,我还没有找到方法。感谢您的意见。
标签: scala collections compile-time typechecking