为方法提供以下内容:
def beCool[T <: S](args:Array[T]) = {}
def beCool(args:Array[T forSome {type T <:S}]) = {}
Run Code Online (Sandbox Code Playgroud)
它们是等价的吗?你能不能给我一些例子呢?
我认为,每当您需要访问T. 最简单的示例是返回 args 的元素:
def beCool(args: Array[T forSome { type T }]): T = args.head // --> not found: type T
def beCool[T](args: Array[T]): T = args.head // ok
Run Code Online (Sandbox Code Playgroud)
T当您使用通配符时,第一个类型中不存在可访问类型会更加明显:
def beCool(args: Array[_ <: S]) = ???
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
681 次 |
| 最近记录: |