Scala库在命名包时是否遵循与Java相同的反向域约定?

Scala库在命名包时是否遵循与Java相同的反向域约定?,scala,coding-style,naming-conventions,packages,Scala,Coding Style,Naming Conventions,Packages,我想写一个小的Scala库来了解它的演员编程模型 在我遇到的示例代码中,有些库对包使用反向域(例如org.foo.bar),而有些库不使用(可能只是为了简洁) Scala库是否建议使用与Java相同的包命名约定?更一般地说,有没有像Python那样的好的Scala编码风格的建议 是的,可能是本末倒置,但我发现我也可以通过看到一些已经摆脱的惯例,对一门语言有一种不错的感觉 感谢Scala中较大的项目之一,它使用倒置的域名约定,这实际上很有意义,因为Scala和Java可以互操作,所以您希望尽可能地

我想写一个小的Scala库来了解它的演员编程模型

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

Scala库是否建议使用与Java相同的包命名约定?更一般地说,有没有像Python那样的好的Scala编码风格的建议

是的,可能是本末倒置,但我发现我也可以通过看到一些已经摆脱的惯例,对一门语言有一种不错的感觉


感谢Scala中较大的项目之一,它使用倒置的域名约定,这实际上很有意义,因为Scala和Java可以互操作,所以您希望尽可能地让事情变得轻松,我真的想不出用其他方法做这件事有什么值得的好处。

Scala基本上继承了Java的大部分约定(几乎在所有方面)。这方面有一些例外。例如,Scala“getter和setter”实际上是通过以下方式完成的:

class Person {
  private var _name: String = _

  def name = _name

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

如果有疑问,可以借用Java、Ruby或Haskell的约定(按照优先顺序)。关于包,答案是“是”,Scala包是使用倒置域约定命名的。

谢谢,查看Lift的结构方式有助于我更好地理解包/模块。倒域约定还可以,但我已经使用Python足够长的时间了,现在我也可以欣赏更平坦的包层次结构。对于发生名称空间冲突的罕见情况,别名导入的功能似乎是一个很好的解决方案,尽管不可否认,它并不能完全解决问题。有关潜在问题的示例,请参阅。然而,遵循Java规范是有意义的。