Есть ли какая-либо причина использовать классы против объекта вообще в Scala? - PullRequest
2 голосов
/ 27 марта 2019

Просто предшественник, я пришел из Java и довольно новичок в Scala.По мере того, как я больше развиваюсь в Scala и пытаюсь стать более ориентированным на FP, я понимаю, что могу создавать почти весь свой код: функции (и даже методы?), Содержащиеся в Objects (с разбросом классов case, где это необходимо).В таком случае - есть ли вообще смысл в обычных занятиях?

1 Ответ

3 голосов
/ 28 марта 2019
//traits (interfaces) without implementation are perfectly valid from FP standpoint
//it's just a bag of named functions
trait A {
  def foo(s: String): Int
}

//Ok, you can implement a trait without declaring a class
object Obj extends A {
  override def foo(s: String): Int = s.length
}

//But if you want your function to be parametrized then classes are useful
//You can think of classes as partially aplied functions in FP sense 
class Clz(param: String) extends A {
  override def foo(s: String): Int = (param + s).length
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...