scala - private[foo] 适用于任何基于 foo 的包?

标签 scala scope package

希望渺茫,但将其付诸实践——寻找一种基于共同的相对包范围提供隐私的方法。

那么,例如,有没有一种方法可以对包 com.company1.foocom.company2.foo 使用 private[foo] code> 每个包都可以根据它们的“foo-ness”访问另一个 foo 包

不太可能,但会很好,在依赖的 sbt 项目中使用 private[model] 可以真正受益于这种相对隐私。

最佳答案

你不能这样做。来自语言规范 (2.9):

The modifier can be qualified with an identifier C (e.g. private[C]) that must denote a class or package enclosing the definition

因此,您最好的希望是共享通用包。对于给定的两个示例,com.company1.foocom.company2.foo,限制最严格的共享根目录是 comprivate[com] 将是您能做的最好的。

关于scala - private[foo] 适用于任何基于 foo 的包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12714386/

相关文章:

java - Scala - AbstractSeq 如何减少字节码大小

scala - Spark MLlib : Difference between DecisionTree. trainClassifier 和 DecisionTree.train

Java:在不同的库中使用相同的包名称是不好的做法吗?

Scala IDE 支持自动补全和语法高亮

arrays - 如何将数组转换为元组?

java - 使用 JFileChooser - 访问所选文件

mysql - 如何将 SQL 查询转换为 Rails Active Record 查询?

c++ - using 声明是否仅导入在 using 声明之上声明的重载?

python:用户站点中的包不会覆盖 ubuntu 上的 dist-packages

delphi - 是否可以使用新的/不同版本的 Indy 重新编译 Delphi XE 中的 DataSnap 包?