2015-01-23 4 views
14

스위프트에서 함수 매개 변수로 유형을 전달할 수 있습니까? 참고 : 지정된 형식의 개체 대신 형식 자체를 전달하려고합니다. t는 형태로 전달되고있는,하지만 난 자체가 그래서가에서 해당 유형에 대해 확인할 수 있습니다 유형을 전달하고 싶습니다 물론스위프트 : 매개 변수로 패스 유형

infix operator <-? { associativity left } 
func <-? <U,T>(x:U?, t:T) -> T? { 
    if let z = x as? t { 
     return z 
    } 
    } 
} 

예를 들어, 만약 내가 스위프트의 as? 기능을 복제하고 싶어 기능 본체.

답변

18

당신은 T.Type을 사용할 수 있지만 캐스팅해야 tT뿐만 아니라 :

infix operator <-? { associativity left } 
func <-? <U,T>(x:U?, t:T.Type) -> T? { 
    if let z = x as? T { 
     return z 
    } 
    return nil 
} 

샘플 사용 :

[1,2, 3] <-? NSArray.self // Prints {[1, 2, 3]} 
[1,2, 3] <-? NSDictionary.self // Prints nil 
+0

아, 그래, 그것을했다. 감사! –

관련 문제