Scalaで学ぶ関数脳入門を読んでみた。この本も、翻訳本でないので、プログラムの例が理解しやすい。抽象的な内容を理解するには、具体的な例をいろいろ知る必要があるということを、あらためて知らされる。
P180で暗黙の型変換とcaseクラスを組み合わせた、パターンマッチングの紹介があった。
case class Apple(price:Int,num:Int)
case class TotalCalc(price:Int,num:Int){ ①
def totalPrice = price * num
}
implicit def conv(apple:Apple)=TotalCalc(apple.price,apple.num) ②
apple=Apple(100,3)
apple totalPriceで求められる
apple totalPriceのappleは暗黙の型変換でTotalCalcに変換され、その上で、①のtotalPriceを呼び出していることになる。 擬似的に、appleの型をTotalCalcの型に変換し、totalPriceがあたかもappleに定義されているかのように呼び出せる。(ref:scala逆引きレシピ300 P38)
0 件のコメント:
コメントを投稿