Scala特征:如何要求输出参数为Numeric:模糊隐式值错误

时间:2017-04-19 03:58:18

标签: scala

我试图指定应该在特征中返回一些数字的泛型函数,如下所示:

import Numeric.Implicits._

trait ReturnsNumberResult {
  def process[T : Numeric](): T
  def output[T : Numeric](v: T)(implicit numeric: Numeric[T]): String
  def runJob(): Any = {
      output(process())
}

当我试图编译这个特性时,我得到了错误:

  

模糊隐含值:[错误]对象BigIntIsIntegral中   object scala.math.Numeric.BigIntIsIntegral.type类型的数字   [error]和对象IntIsIntegral in object数值类型   scala.math.Numeric.IntIsIntegral.type [error]匹配预期类型   数字[T] [错误]输出(进程())

出了什么问题以及如何实现目标?

1 个答案:

答案 0 :(得分:1)

这是因为$event_cats = get_the_terms( $post_id, 'tribe_events_cat' ) 并未明确声明runJobT: Numeric方法的output类型

因此编译器无法推断process方法中T: Numericoutput方法的类型process

所以你可以解决它:

runJob