将元组定义为scala类中的参数

时间:2016-09-09 04:21:45

标签: scala

我需要在我的scala case classe中定义val元组作为值参数

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

但它给了我一个编译错误..有人指出我该怎么做?

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

使用REPL,记下给定值的推断类型;例如

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

因此

scala> val t2: (String,String) = ("a","b")
t2: (String, String) = (a,b)

答案 2 :(得分:0)

case class v1(t: (String, String), v2: String)