我正在寻找一个小的Scala库来感受它的Actor编程模型。
在我遇到的示例代码中,一些库使用反向域(例如org.foo.bar)用于包,而有些库则没有(可能只是为了简洁)。
Scala库是否可以使用与Java相同的包命名约定?更一般地说,是否有任何好的Scala编码风格建议,如Python与PEP 8?
是的,可能会把马放在马前,但我发现通过看到一些已经动摇的惯例,我可以对语言有一种体面的感觉。
由于
答案 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包使用反向域约定命名。