我在scala中有更高级别的kinded类型的用户定义别名:
type FutureOfLastError = Future[LastError]
我也有这种类型的值:
val myFuture: FutureOfLastError = ...
要编写可读代码,我想定义(例如)一个类似的方法
def mapToString = { ... }
它将FutureOfLastError的一个实例映射到Future [String]并将其称为
myFuture mapToString
我怎样才能做到这一点?它甚至可能吗?我已经在一个案例类中尝试了封装,我想到了所有类型的隐式转换 .
我最喜欢的选择是类型别名上的伴随对象,但是我无法使它工作,因为我无法从伴随对象中调用trait Future(如map等)的方法 .
1 回答
你不需要实际扩展类,你可以只使用一个隐式类(这只是“丰富我的库”模式的语法糖) . 像这样简单的东西应该这样做: