在scala类中定义元组作为参数



我需要在scala case类中定义val元组作为value参数

case class (v1:(a:String, b:String), v2:String)

但是它给了我一个编译错误…有人能告诉我怎么做吗?

不能在类参数中命名元组元素,但可以在类体中命名。

scala> case class CC(v1:(String, String), v2:String) {
     | val (a,b) = v1
     | }
defined class CC
scala> val cc = CC(("X", "Y"), "Z")
cc: CC = CC((X,Y),Z)
scala> cc.a
res11: String = X
scala> cc.b
res12: String = Y

使用REPL时,请注意给定值的推断类型;例如

scala> val t = ("a","b")
t: (String, String) = (a,b)
因此

scala> val t2: (String,String) = ("a","b")
t2: (String, String) = (a,b)
case class v1(t: (String, String), v2: String)

最新更新