これはスカラーで見つかったもので、なぜ機能するのかわかりません。私はまだそれを定義していながら、(私の他のオブジェクト/俳優は、パラメータとしてそれを取るため)スケーラの定義中にvalを参照している自己
基本的に私は、「私はドン場合、私は、コンパイラエラーになりますヴァルに
val backbone: ActorRef = context.actorOf(
F_BackBone.props(
context.actorOf(F_PictureHandler.props(backbone)),
context.actorOf(F_UserHandler.props(backbone)),
context.actorOf(F_PageProfileHandler.props(backbone))
)
)
を参照を使用することができます明示的に型を定義することは意味があります。
しかし、これは再帰的な定義ではありません、それはです:
これは(スーパーバイザ戦略は俳優を再起動しようとするので、何度)以下が得られそれが構築される前に参照が渡されている –
しかし、私はArchegによって他のスレッドで行われたコメントが適用されると言っています: "[...]変数' a'は 'val a:Int'、[.. .. 。] "あなたはユーザー定義型でInt型ではないので、 'backbone'は右側で' null'に初期化されます。 –
@ChristianHirsch私は同じ理解を持っています。つまり、 'context.actorOf(F_UserHandler.props(backbone))'は、遅れて評価されている(call-by-name、lazy valなど)場合を除き、 'backbone'を' null'として受け取ります。おそらく、潜在的なバグが 'null 'を介してここに導入されている可能性があります。 – tuxdna