Scala で shapeless を使ってみる
こんにちは、 @kz_morita です。
今回は、Scala の Generic Programming のためのライブラリの shapeless を使ってみたまとめです。
shapeless とは Shapeless は Scala 用の Generic Programming のライブラリです。
https://github.com/milessabin/shapeless Generic Programming は具体的なデータ型に直接依存しないことで抽象的で汎用的にコードを書こうとするプログラミング手法です。
shapeless では以下のような case class は以下のようなデータ型で表すことができます。
case class Item(name: String, num: Int) Item("商品1", 10) // => val item: String :: Int :: HNil = "商品1" :: 10 :: HNil case class を HList に変換する shapeless では、以下のような型を HList と呼んでいます。
val item: String :: Int :: HNil = "商品1" :: 10 :: HNil case class から HList に変換するのは以下のようにします。