【发布时间】:2015-09-08 05:43:49
【问题描述】:
据我所知,这两个功能是等价的:
def x(xx: X forSome { type X <: Int }): Unit = ()
def y[Y <: Int](yy: Y): Unit = ()
根据我的观察,现在人们大多使用第二种形式(使用[]),同时我有时会看到使用第一种形式(forSome)的文章(主要是旧的,讨论存在类型)。
有 2 个符号的原因是什么?使用其中一种或另一种有哪些优点\缺点或你不能\不能做的事情?
【问题讨论】:
-
如您所见,它是存在类型,别名是方括号中的通配符;利弊无法描述,因为它是不同的类型;在这里你可以阅读更多:drmaciver.com/2008/03/existential-types-in-scala(附样本),不好意思回复,没时间自己写。
标签: scala generics types existential-type