目前,我正在处理流数据。这是我从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 :(得分: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()执行与创建新变量相同的操作,并初始化为零。因此,如果你明确地写T(0),它也会这样做。