是否可以在方法中定义参数 x,使得 x 的类型T
是实现给定函数签名(假设为def apply() : Double
)的泛型类型,而不引入新类型?
[示例] 目标是定义类似的东西(我使用临时语法只是为了说明):
def foo(x : T with def apply() : Double) = { ... }
目前,我可以引入一个新类型ApplyDouble
,但这需要我将所有可能的类型,其实例是合法参数的所有类型都扩展为“foo”,然后将 foo 的签名转换为
def foo(x : ApplyDouble) = { ... }