【发布时间】:2014-06-01 08:41:15
【问题描述】:
我想创建一些“通用加法器”函数,它适用于所有支持“+”操作的类型。 我尝试将结构类型作为函数类型参数,但这不能编译:
def f[T <: { def +(x: T): T} ](a: T, b: T): T = a + b
error: Parameter type in structural refinement may not refer to an abstract type defined outside that refinement
有没有办法解决这个问题?
【问题讨论】:
-
我相信 Int 和 String 都没有 + 方法。在这种情况下,隐式转换可能会有所帮助。
标签: scala duck-typing structural-typing