Swift   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Swift 扩展(Extensions)(十四)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

可以为类添加新功能 UIViewController extension UIViewController { // 为 UIViewController 添加的新功能写到这里 } Double extension Double { var km: Double { return self * 1_000.0 } var m : Double { return self }

可以为类添加功能

UIViewController

extension UIViewController {
    // 为 UIViewController 添加的新功能写到这里
}

Double

extension Double {
    var km: Double { return self * 1_000.0 }
    var m : Double { return self }
    var cm: Double { return self / 100.0 }
    var mm: Double { return self / 1_000.0 }
    var ft: Double { return self / 3.28084 }
    var sq: Double { return self * self }
}

ViewController// 自定义

extension ViewController{
    func printfChars()
    {
        print("I am char")
    }
}

二 可变实例方法(MutaTing Instance Methods)

通过扩展添加的实例方法也可以修改该实例本身。结构体和枚举类型中修改 self 或其属性方法必须将该实例方法标注为 mutaTing,正如来自原始实现的可变方法一样。
下面的例子为 Swift 的 Int 类型添加一个名为 square 的可变方法,用于计算原始值的平方值:
改变Int 值本身

extension Int {
    mutaTing func square() {
        self = self * self
    }
}

三 嵌套类型(nested Types)

扩展可以为已有的类、结构体和枚举添加新的嵌套类型:

extension Int {
    enum Kind {
        case Negative,Zero,Positive
    }
    var kind: Kind {
        switch self {
        case 0:
            return .Zero
        case let x where x > 0:
            return .Positive
        default:
            return .Negative
        }
    }
}

// 在ViewController
// viewDidLoad中

self.printfChars()
let oneInch = 25.4.mm
print("One inch is \(oneInch) meters") // One inch is 0.0254 meters
  let dou = 23.4.sq
  print("\(dou)") // 547.56
let numbers = [1,2,4,5,6,3,0,-54,-65]
self.printIntegerKinds(numbers) // + + + + + + 0 - - 
var intnumb = 5
intnumb.square()
print("\(intnumb)") // 25

该例子为 Int 添加了嵌套枚举。这个名为Kind 的枚举表示特定整数的类型。具体来说,就是表示整数是正数、零或者负数。
这个例子还为 Int 添加一个计算型实例属性,即 Kind,用来根据整数返回适当的 Kind 枚举成员。
现在,这个嵌套枚举可以和任意 Int 值一起使用了:

func printIntegerKinds(numbers: [Int]) {
        for number in numbers {
            switch number.kind {
            case .Negative:
                print("- ",terminator: "")
            case .Zero:
                print("0 ",terminator: "")
            case .Positive:
                print("+ ",terminator: "")
            }
        }
        print("")
    }

大佬总结

以上是大佬教程为你收集整理的Swift 扩展(Extensions)(十四)全部内容,希望文章能够帮你解决Swift 扩展(Extensions)(十四)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。