В Spark & Scala более эффективно помещать логические методы непосредственно в класс case или в объект-компаньон? Например:
final case class RichInt(x: Int) {
def isLarge: Boolean = x > RichInt.largeInt
}
object RichInt {
private val largeInt: Int = 5
}
против
final case class SlimInt(x: Int) {}
object SlimInt {
private val largeInt: Int = 5
def isLarge(slimInt: SlimInt) : Boolean = {
slimInt.x > largeInt
}
}
Методы вызываются по-разному (SlimInt.isLarge(slimInt)
против richInt.isLarge
), причем последний, вероятно, более интуитивно понятен, но существует ли значительный потеря производительности для одного шаблона по сравнению с другим?