我有一个案例类:
case class C(a:String, b:String, c:Int, d:Long, e:String ... )
我想加入班级成员
val c = new C("a", "b", 1, 1L, "e" ... )
val joined_str = c.a + c.b + c.c + c.d + c.e ... // so many members...
是否有一项功能可以轻松地将成员加入到一起? 我不想写这么多会员名,因为会员人数太多而且会员名称太长......
答案 0 :(得分:2)
Scala案例类"使用综合生成的方法实现Product"。因此,您可以使用提供的productIterator
方法迭代案例类的成员,然后在其上调用mkString
。
scala> C("a","b",0,1l,"e").productIterator.mkString
res7: String = ab01e
答案 1 :(得分:1)
case class C(a: String, b: String, c: Int, d: Long, e: String)
val c = C("a", "b", 1, 1L, "e")
c.productIterator.mkString
//res0: String = ab11e
答案 2 :(得分:1)
简短的回答,
val c = C("a", "b", 1, 1L, "e")
c.productIterator.mkString(",")
res0: String = a,b,1,1,e
案例类配备了一个产品迭代器,用于迭代字段。
注意它丢失类型信息;例如,
c.productIterator.toArray
res1: Array[Any] = Array(a, b, 1, 1, e)
成为Any
的数组。