我有以下玩具功能:
def test[T](x: Option[List[Option[T]]])
{
for (a <- x; b <- a; c <- b) println(c)
println("----------")
}
我如何概括上述函数,使其也适用于Option[Option[Option[T]]]
or或andList[List[List[T]]]
的任何其他组合?Option
List
以下尝试显然不起作用,因为类型不是类型构造函数:
def test2[Q,R,S,T](x: Q[R[S[T]]])
在 C++ 中,我可能会为此目的使用模板模板。Scala有类似的东西吗?