美文网首页
第二十一节 Swift 中的泛型

第二十一节 Swift 中的泛型

作者: 码客南君 | 来源:发表于2020-07-15 14:59 被阅读0次

    如果要写可复用的函数和类型,Swift 的泛型是个很好的选择。

    举个例子,有两个变量 A和 B,想写一个交换 A和 B值的函数。如果用非泛型的函数来写,首先要确定 A和 B的类型,如果是 int那函数的输入参数就是 int类型,代码如下:

    // 定义一个交换两个变量的函数
    func swapTwoInts(_ a: inout Int, _ b: inout Int) {
        let temporaryA = a
        a = b
        b = temporaryA
    }
     
    var numb1 = 100
    var numb2 = 200
     
    print("交换前数据: \(numb1) 和 \(numb2)")
    swapTwoInts(&numb1, &numb2)
    print("交换后数据: \(numb1) 和 \(numb2)")
    

    如果 A和 B的类型是 String,那就要重新写一个 swapTwoStrings() 的函数,这样的话代码的复用性就差一点。

    如果用泛型就能解决这个问题:

    // 定义一个交换两个变量的函数
    func swapTwoValues<T>(_ a: inout T, _ b: inout T) {
        let temporaryA = a
        a = b
        b = temporaryA
    }
     
    var numb1 = 100
    var numb2 = 200
     
    print("交换前数据:  \(numb1) 和 \(numb2)")
    swapTwoValues(&numb1, &numb2)
    print("交换后数据: \(numb1) 和 \(numb2)")
     
    var str1 = "A"
    var str2 = "B"
     
    print("交换前数据:  \(str1) 和 \(str2)")
    swapTwoValues(&str1, &str2)
    print("交换后数据: \(str1) 和 \(str2)")
    

    相关文章

      网友评论

          本文标题:第二十一节 Swift 中的泛型

          本文链接:https://www.haomeiwen.com/subject/iladhktx.html