2014-12-25 6 views
0

현재 스트림 데이터로 작업하고 있습니다. 이것은의 Obj-C에서 내 코드를 포팅 :클래스 또는 구조체 유형을 매개 변수로 설정하십시오.

여기
func readInt8() -> Int { 
    var temp = Int8() 
    //get value for temp 
    return Int(temp) 
} 

func readInt64() -> Int { 
    var temp = Int() 
    //get value for temp 
    return temp 
} 

func readFloat32() -> Float { 
    var temp = Float32() 
    //get value for temp 
    return temp 
} 

내 시도 것 :

func read<T: SignedIntegerType>(type: T.Type) -> Int { 
    //error: Missing argument for parameter 'integerLiteral' in call 
    var temp = T() 
    //getting value for temp requires it to be initialized 
} 

가 어떻게 이러한 기능은 일반적인 만들 수 있습니까? 고맙습니다. 지금까지 한 일을 바탕으로

+0

이 요점을 살펴보십시오. 현재하고있는 것과 비슷합니다. https://gist.github.com/davepeck/495ea71f815ce292d6e0 –

답변

0

:

func readInt<T: SignedIntegerType>() -> T { 
    return T(0) 
} 

func readFloat<T: FloatingPointType>() -> T { 
    return T(0) 
} 

var a: Double = readFloat() //0.0 
var b: Int32 = readInt() //0 

좋은 수 있습니다. Int(), Int8(), Float()는 새 변수를 만들 때와 동일하게 수행하며 0으로 초기화됩니다. 그래서 T (0)을 명시 적으로 쓰면 똑같이됩니다.

관련 문제