2016-07-11 2 views
0

Swift Generics로 작업 할 때 형식 자리 표시 자의 형식이 모두 같아야합니까? 아래 예제에서는 모든 유형 자리 표시자를 문자열 유형으로 변환합니다. 매개 변수가 문자열 일 수 있고 반환 유형이 Int인지 또는 제네릭 작동합니까? 각 자리 표시 자 유형이 동일한 경우?Swift 일반 매개 변수 및 반환 형식

func takeAndReturnSameThing<T>(t: T) -> T { 
    return t 
} 

Let thing = takeAndReturnSameThing("howdy") 

답변

1

예 형식 매개 변수 ("장소 보유자")의

요점들이 지속적으로 같은 유형을 표시한다는 것입니다 :

다음은 예입니다.

여러 유형을 일반적으로 나타내려면 새 유형 매개 변수를 사용해야합니다.

func takeAndReturnADifferentThing<T, U>(t: T) -> U { 
    return t.getU() 
} 
1

이 같은 다수의 일반적인 유형을 가질 수 있습니다 물론

func takeAndReturnDifferentThing<T,U>(t:T) -> U { 
    return t.convertToU() // Assuming type T has this method. 
} 

T는 S.

로 변환 할 수있는 당신이 T 및 S 모두 확인하는 constrain한다