2015年7月20日月曜日

Scalaで学ぶ関数脳入門

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 件のコメント:

コメントを投稿