是否有任何理由在Scala中完全使用类vs对象?

时间:2019-03-27 14:56:09

标签: scala functional-programming

仅仅是先驱,我来自Java背景,对Scala来说还很陌生。当我在Scala中进行更多开发并尝试变得更加面向FP时,我意识到我可以编写几乎所有代码:对象中包含的函数(甚至方法?)(需要时添加大量case类)。在那种情况下-普通班级有什么用吗?

1 个答案:

答案 0 :(得分:2)

//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
}