我正在将我的第一次入侵写入Swift中编写泛型函数。我试图做的是编写一个函数,只要该类型可以转换为浮点数就可以接受任何类型的数组输入。我想知道如果我可以利用一些Swift标准库协议来做到这一点。这里是(我在寻找什么作为ConvertibleToFloatingPointTypeProtocol
使用)一个简单的例子:如何在Swift中使用浮点数组的输入数组写入泛型函数?
func toDoubleArray<T: ConvertibleToFloatingPointTypeProtocol>(array: [T]) -> [Double] {
var doubleArray = [Double]()
for arrayItem in array {
doubleArray.append(Double(arrayItem))
}
return doubleArray
}
的编译器错误,我从这个获得当我尝试FloatingPointType
等是:“无法找到类型的初始化‘双师型’它接受类型'(T)'的参数列表“
现在我知道另一种选择是创建自己的协议,然后扩展我感兴趣的类型来采用它,但这只是感觉像存在的东西在我的鼻子下面。
我不认为这样的事情在STDLIB存在,但你可以创建自己的协议。 – jtbandes
谢谢@ jtbandes,我知道我可以走这条路线,我只是确信这必须已经存在。 –