2013-10-23 8 views
5

は、私はまだスカラーインポートは再帰的ですか?</p> <pre><code>import mypack._ </code></pre> <p>で

import mypack.box.writer 
import mypack.box.reader 

import mypack.box.parser.stringparser 

に必要なのでしょうか?

検索とGoogleの適切なキーワードは何ですか? 「再帰的」は圧倒的な「尾部再帰」の結果をもたらします。

+0

「再帰的」はここでは無関係です。 "サブサウンシング"、あるいはおそらく "推移的"であろう。いずれにしても、ダニエルが答えると、第2層または深いインポート効果はありません。それがしないもう一つのことは、名前空間の外部に目に見える内容に何かを追加することです(インポートが型または値定義ブロック内に現れる場合を含む)。 –

答えて

10

いいえ、Scalaのインポートは再帰的ではありません。

パッケージは、現在のスコープ内の名前空間をきれいに保つためにあります。すべてのサブパッケージをデフォルトでインポートすると、それに反します。あなたがこれを行うことができますので、一方、輸入は、相対的なもので

:それはややエラーが発生しやすいよう

import mypack._ 
import box.writer 
import box.reader 
import box.parser.stringparser 

一部の人々は、このスタイルを嫌います。絶対輸入と相対輸入の間に明確な区別がないので、私はそれを嫌う。それでも、時には助けになります。

関連する問題