scala如何处理嵌套参数化?

时间:2015-02-09 06:59:10

标签: scala

考虑一个例子:

public def someFunc(f: (One Pair Two Pair Three) => Future[Two]) : SomeResultType = {...}

case class One(...)
case class Two(...)
case class Three(...)

配对是scala.Predef#Pair scala.Predef#Pair是什么意思?据我所知,我可以在scala中编写函数调用,如println "string",但在这种情况下,令牌是类型。表达式One Pair Two Pair Three的实际类型是什么?

1 个答案:

答案 0 :(得分:3)

您可以使用REPL来获得答案:

scala> def ttt: Int Pair Long Pair String = ???
ttt: Pair[Pair[Int,Long],String]

类型A B C表示B[A, C]中的scala

所以One Pair Two Pair Three表示Pair[One,Two] Pair Three表示Pair[Pair[One, Two], Three]

Pair只是Tuple2的类型别名。

请注意,Pairdeprecated,您应该使用Tuple2代替((One, Two), Three)