Scala库是否遵循相同的反向域约定来将包命名为Java?

时间:2009-04-21 22:40:19

标签: scala coding-style naming-conventions packages

我正在寻找一个小的Scala库来感受它的Actor编程模型。

在我遇到的示例代码中,一些库使用反向域(例如org.foo.bar)用于包,而有些库则没有(可能只是为了简洁)。

Scala库是否可以使用与Java相同的包命名约定?更一般地说,是否有任何好的Scala编码风格建议,如Python与PEP 8

是的,可能会把马放在马前,但我发现通过看到一些已经动摇的惯例,我可以对语言有一种体面的感觉。

由于

2 个答案:

答案 0 :(得分:8)

Lift,Scala中较大的项目之一,使用反向域名约定,这实际上很有意义,因为Scala和Java可以互操作,因此你有理由想要保留东西尽可能无痛,我真的想不出以任何其他方式做任何有价值的好处。

答案 1 :(得分:2)

Scala基本上继承了Java的大多数约定(几乎在所有内容中)。这有一些例外。例如,Scala“getter and setters”实际上是按照以下方式完成的:

class Person {
  private var _name: String = _

  def name = _name

  def name_=(s: String) {
    _name = s
  }
}

如果有疑问,请从Java,Ruby或Haskell(按优先顺序)借用约定。关于包,答案是“是”,Scala包使用反向域约定命名。