簡體   English   中英

什么時候在Scala中使用存在類型?

[英]When to use existential type in Scala?

給出以下方法:

def beCool[T <: S](args:Array[T]) = {}
def beCool(args:Array[T forSome {type T <:S}]) = {}

它們相等嗎? 您能給我一些例子,什么時候應該選哪個?

我想,只要您需要訪問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

使用通配符時,第一個可訪問類型T的不存在更加明顯:

def beCool(args: Array[_ <: S]) = ???

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM