【问题标题】:How to extend class with implicit parameter in Scala如何在Scala中使用隐式参数扩展类
【发布时间】:2014-04-23 06:52:54
【问题描述】:

B 类(隐式 imp: Int) 扩展 AC { }

对象 C 扩展 B{

}

错误:找不到参数 imp 的隐式值

这就是我要找的:How to provide default value for implicit parameters at class level

【问题讨论】:

  • 由于对象没有构造函数,因此无法完成。但是你可以让一个类扩展另一个类class B(implicit imp: Int) extends A(imp)

标签: scala implicit-parameters


【解决方案1】:

你扩展它就像你扩展一个带有非隐式参数的类,但你首先需要一个空参数列表:

scala> object C extends B()(5) {}
defined module C

【讨论】:

    【解决方案2】:
    scala> class B(implicit imp:Int)
    defined class B
    
    scala> class C extends B()(1)
    defined class C
    
    scala> implicit val imp:Int = 2
    imp: Int = 2
    
    scala> class D extends B
    defined class D
    
    scala> 
    

    【讨论】:

      猜你喜欢
      • 2012-11-03
      • 2012-05-04
      • 1970-01-01
      • 2016-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多