9
메소드에 다음을 제공하십시오.스칼라에서 실존 타입을 언제 사용할 수 있습니까?
def beCool[T <: S](args:Array[T]) = {}
def beCool(args:Array[T forSome {type T <:S}]) = {}
? 어떤 것을 선호해야하는지 몇 가지 예를 들려 주시겠습니까?
메소드에 다음을 제공하십시오.스칼라에서 실존 타입을 언제 사용할 수 있습니까?
def beCool[T <: S](args:Array[T]) = {}
def beCool(args:Array[T forSome {type T <:S}]) = {}
? 어떤 것을 선호해야하는지 몇 가지 예를 들려 주시겠습니까?
T
에 액세스해야 할 때마다 가장 먼저 생각해야합니다. 가장 간단한 예는 인수의 요소를 반환 :
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
의 inexistance 더 명백하다 :
def beCool(args: Array[_ <: S]) = ???
HTTP : //scalada.blogspot를 .com/2008/01/existential-types.html –