你能直接将非隐式val作为参数传递给期望隐式的函数吗?

时间:2016-07-01 08:48:59

标签: scala implicit

请原谅我的空白。

class Bar(implicit foo: Foo)

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

我们是否可以将Bar的实例化简化为单个语句,其中this非常 显式 作为构造函数参数?

我的问题也适用于传递任何val,而不仅仅是这个例子中的this

1 个答案:

答案 0 :(得分:3)

构造函数中的隐式参数是这里第二组参数的一部分(第一组是空的),所以你可以这样做

val bar = new Bar()(new Foo)