3

遠回りですが、公開します -- 共通の相対的なパッケージ スコープに基づいてプライバシーを提供する方法を探しています。

たとえば、private[foo]パッケージに使用する方法com.company1.foocom.company2.foo、各パッケージが「foo-ness」に基づいて他の foo パッケージにアクセスできる場所はありますか?

private[model]可能性は低いですが、このような相対的なプライバシーから本当に恩恵を受けることができる依存する sbt プロジェクトで使用されると便利です。

4

2 に答える 2

2

これはできません。言語仕様 (2.9) から:

修飾子は、定義を囲むクラスまたはパッケージを示す必要がある識別子C(例: ) で修飾できます。private[C]

したがって、期待できる最善の方法は、共有共通パッケージです。与えられた 2 つの例ではcom.company1.foo、 でありcom.company2.foo、最も制限的な共有ルートはcomです。private[com]あなたができる最善のことでしょう。

于 2012-10-03T18:31:55.230 に答える
1

foo特定のスコープ内の特定の完全に名前が付けられたパッケージのエイリアスにすぎないため、これは可能ではないと思います。

したがって、名前が で終わるパッケージには、名前.fooに文字を含む 2 つのパッケージよりも多くの共通点はありませんe

于 2012-10-03T18:30:52.297 に答える