2016-07-01 7 views
3

気にしないでください。暗黙のvalを暗黙的に期待する関数に引数として直接渡すことはできますか?

class Bar(implicit foo: Foo) 

class Foo { 
    implicit val self = this 
    lazy val bar = new Bar 
} 

我々はthisが非常に明示的コンストラクタ引数として提供され、単一のステートメントにBarのインスタンス化を簡素化することができますか?

私の質問は、この例のようにthisだけでなく、valを渡す場合にも当てはまります。

答えて

3

あなたは

val bar = new Bar()(new Foo) 
+1

ああを行うことができますので、あなたのコンストラクタで暗黙のパラメータは、(最初​​のセットが空である)、ここで第2のパラメータセットの一部であるので、それが唯一のことを思い出すのに必要な、簡単です空のパラメータリストは、与えられた暗黙的なパラメータの直前にコンパイラによって構築されます。どうもありがとう。 – matanster

関連する問題