【发布时间】:2017-04-19 03:58:18
【问题描述】:
我正在尝试指定应该返回一些特征的通用函数,如下所示:
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 in scala.math.Numeric.BigIntIsIntegral.type 类型的对象数值 [错误] 和对象 IntIsIntegral 在对象 Numeric 类型 scala.math.Numeric.IntIsIntegral.type [错误] 匹配预期类型 数字[T] [错误] 输出(进程())
出了什么问题以及如何实现我的目标?
【问题讨论】:
-
我相信这个
def output[T: Numeric](v: T)(implicit numeric: Numeric[T])是多余的。[T: Numeric]只是隐式参数声明的语法糖。 -
谢谢。你是对的
标签: scala