В разделе Mapped Tables я вижу оператор <> в упомянутом примере, но нигде не могу найти никакой документации для этого. Нужна помощь в понимании этого.
Ответ 1
Оператор <> определяет связь между Row в Table и case class.
case class User(id: Option[Int], first: String, last: String)
ROW |id | first | last |
Таким образом, данные сначала извлекаются из таблиц как n-tuple (левая сторона <>), а затем преобразуются в case class (правая сторона <>).
Чтобы сделать преобразование работы класса case, нужны два метода:
Row в n-tuple к case class.
scala> User.tupled
res6: ((Option[Int], String, String)) => User = <function1>
Таким образом, эта функция может создать User если в качестве аргумента задана тройка (Option[Int], String, String).
Эта функция обеспечивает функциональность другим способом. Учитывая пользователя, он может извлечь тройку. Этот шаблон называется Extractor. Здесь вы можете узнать больше об этом: http://www.scala-lang.org/old/node/112
Ответ 2
Это не оператор scala, это метод, определяемый с помощью slick ShapedValue class
Как вы можете видеть в связанной с вами документации, она использовала для сопоставления проекции к классу case и из него, предоставляя два метода