ケースクラスは関数として渡すことができますが、通常のクラスを同じ方法で関数として渡すにはどうすればよいですか?
case class Fraction(val num: Int, val den: Int)
object Run extends App {
def doFraction(in: (Int, Int) => Fraction) {}
doFraction(Fraction)
}
上記のコードは機能しますが、以下のコードを変更して同じ効果を得るにはどうすればよいですか?
class Fraction(val num: Int, val den: Int) {
/* what can I put here or in companion object to make this compile? */
}
object Fraction {
/* ... */
}
object Run extends App {
def doFraction(in: (Int, Int) => Fraction) {}
doFraction(Fraction)
}