*
- это мощность класса корпуса; то есть количество аргументов, которое требуется.
Собираем вместе:
case class Foo(a: Int, b: Long)
Представляет код, который выглядит следующим образом:
class Foo(val a: Int, val b: Long)
object Foo extends Function2[Int,Long,Foo] {
def apply(a: Int, b: Long): Foo = new Foo(a,b)
}
Приведенный выше код не является полным, корпус класса создает много других вспомогательных функций, таких как красивая печать, исключить его для сопоставления шаблонов, тестов на структурное равенство и т. д.
'Функция *', что означает любые функции 'Function1' или' Function2', я предполагаю, что –