查找某个数组中的元素下标(这里使用最笨的循环查找)
1、这里定义泛型T(可以命名其他名字)必须遵循Equatable协议,这样系统帮我们内部实现 == 和 != 方法,这样T才能进行==比较。
2、使用
let arr = [1,2,1,11,22,33,123]
print(findElemnet(findOfEle: 33, arr: arr))
func findElemnet<T: Equatable>(findOfEle: T, arr: [T]) -> Int? {
for (index,value) in arr.enumerated() {
if value == findOfEle {
return index
}
}
return nil
}
泛型约束
1、泛型可以简化代码
2、泛型约束可以更精确的指导有哪些参数有什么标准
func someFunction<T: SomeClass, U: SomeProtocol>(someT: T, someU: U) {
// 这里是泛型函数的函数体部分
}
3、someT遵循的是某个class,someU遵循的是某个协议,这样在传参的时候明确参数类型
网友评论