14

内部アクセス修飾子を理解するのに問題があります。私の例では、パブリックとは異なる動作をする状況を作り出すことができませんでした。jar を作成しても、jar の外部から (jar で使用されているものとは無関係の別のパッケージから) jar の内部関数にアクセスできます。ドキュメントではモジュールという用語が使用されていますが、モジュールが正確に何であるかを見つけることができませんでした。

したがって、私の質問は次のとおりです。

  1. kotlinのモジュールとは何ですか?

  2. アクセス修飾子 internal は public modiefier とどう違うのですか?

4

1 に答える 1

6

Kotlin コンパイラ バージョン M8 (0.8.11) はモジュールを無視します。より正確には、すべてのコードが同じモジュールに配置されているかのように機能します。これが、 の可視性エラーを取得できない理由ですinternal

次のマイルストーン リリース以降、作成するすべての IDE モジュールには独自の可視性スコープがあり、internalあるモジュールから別のモジュールの宣言にアクセスしようとすると、エラーが発生します。一方、パブリックはプロジェクト全体で表示されます。

更新: これは M8 では有効になっておらず、後で延期されました

更新: これは、後の Kotlin マイルストーンとベータ版から有効になっています。

于 2014-09-13T08:12:54.540 に答える