【发布时间】:2018-10-01 02:04:34
【问题描述】:
我今天遇到了一个签名如下的方法:
def foo() : Future[_] = { /* some code */ }
我的问题是这里的返回类型是什么意思?这是否意味着此方法返回 Future 而我不在乎计算的类型是什么?还是别的什么?
【问题讨论】:
标签: scala types existential-type
我今天遇到了一个签名如下的方法:
def foo() : Future[_] = { /* some code */ }
我的问题是这里的返回类型是什么意思?这是否意味着此方法返回 Future 而我不在乎计算的类型是什么?还是别的什么?
【问题讨论】:
标签: scala types existential-type
Future[_] 类型只是 the placeholder syntax for existential type:
Future[X] forSome { type X }
这样
def foo(): (Future[X] forSome { type X }) = { /* some code */ }
表示:foo 返回一个 Future,其值为某个未知类型 X。所以,你的解释
“这个方法返回一个Future,我不在乎计算的类型是什么”
是正确的。
【讨论】: