scala - 将 scala 元组打包到自定义类对象

标签 scala tuple-packing

我有一个元组

val tuple = ("Mike", 40)

和案例类

case class Person(name: String, age: Int)

如何将我的元组打包到 Person 类的对象?除了这个还有其他办法吗:

new Person(tuple._1, tuple._2)

也许有点像

tuple.asInstanceOf[Person]

谢谢。

最佳答案

元组

您可以将 Person.apply 方法转换为函数,然后在函数上使用 tupled 方法:

(Person.apply _) tupled tuple

scala 2.11.8scala 2.12 中,case class 的伴生对象扩展了 FunctionN,所以这会足够了:

Person tupled tuple

模式匹配

没有丑陋的 _N 方法的 new Person(tuple._1, tuple._2) 的类似模式匹配是:

tuple match { case (name, age) => Person(name, age) }

关于scala - 将 scala 元组打包到自定义类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17484384/

相关文章:

c++ - 如何使用没有复制构造函数的给定类初始化元组

python - 在 Python 中将列表的列表转换为元组

angular - Angular HttpClient 未正确反序列化 Scala 类

scala - | @ |的验证用法在 Scalaz

Scala - 如何在运行时从外部文件编译代码?

scala - 为 Scala 中的代码块提供隐式函数

scala - Spark - 如何将 rdd 的前 N ​​个作为新的 rdd(无需在驱动程序处收集)

C++,将自定义占位符与函数参数匹配