2009-04-21 57 views
6

我期待写一个小Scala库来感受它的演员编程模型。Scala库是否遵循与Java命名包相同的反向域约定?

在示例代码中我遇到一些图书馆使用包倒域(例如org.foo.bar)和一些没有(也许只是为了简洁)。

它是明智的斯卡拉库使用相同的包命名约定的Java?更一般地说,是否有像Python一样的好的Scala编码风格建议与PEP 8

是的,很可能把车前马后,但我发现我可以也看到了一些已经摇出公约的得到一个体面的感受的语言。

感谢

回答

8

Lift,在斯卡拉大项目之一,采用倒域名协定,这实际上使得很多的意义,因为Scala和Java的互操作可以,按理说你会想尽可能地让事情变得无痛苦,我真的不能想到以任何其他方式做任何有价值的优势。

+0

感谢,看着方式电梯的结构让我了解封装/模块更好一点。倒转的域约定是可以的,但是我已经使用Python足够长的时间,以至于我还可以欣赏平坦的包层次结构。在导致名称空间冲突的罕见情况下,引入别名的能力似乎是一个很好的解决方案,尽管承认它并不能完全解决问题。 – 2009-04-22 14:14:52

2

斯卡拉基本上继承了大多数Java的约定的(几乎所有)。这有几个例外。例如,斯卡拉“getter和setter”实际上是通过以下方式进行:

class Person { 
    private var _name: String = _ 

    def name = _name 

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

有疑问时,借用的Java,Ruby或哈斯克尔公约(按优先顺序排列)。关于包,答案是“是”,Scala包使用反向域约定来命名。