Rainy Day Codings - Scala で怠惰なリテラル表記
タプルを使うとこんな感じで書ける
object Main { def main(args : Array[String]): Unit = { val ls = List( ("Akira", 23, "Japan"), ("Johnny", 38, "America"), ("Millia", 16, "Russia") ) ls.foreach{x => println(x._1) // 名前 println(x._2) // 年齢 println(x._3) // 国籍 } } }
これを、_1, _2, _3 ではなく、name, age, country と書きたい
case class Person(name: String, age: Int, country: String) object Main { implicit def tupleToPerson(tup: (String, Int, String)): Person = tup match { case (name, age, country) => Person(name, age, country) } def main(args : Array[String]): Unit = { val ls = List( ("Akira", 23, "Japan"), ("Johnny", 38, "America"), ("Millia", 16, "Russia") ) ls.foreach{x => println(x.name) println(x.age) println(x.country) } } }
使う側のコードだけ見るとけっこう怪しいけど、おもしろいな