iOS笔记

swift泛型约束

2020-09-15  本文已影响0人  狗蛋的春天

查找某个数组中的元素下标(这里使用最笨的循环查找)

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遵循的是某个协议,这样在传参的时候明确参数类型
上一篇 下一篇

猜你喜欢

热点阅读