Swift Learning Notes

Extensions

2021-08-24  本文已影响0人  宋奕Ekis

Extensions add new functionality to an existing class, structure, enumeration, or protocol type.

Extensions in Swift can:

but they can’t override existing functionality.

Extension Syntax

extension SomeType: SomeProtocol, AnotherProtocol {
    // implementation of protocol requirements goes here
}

Extension has extensive scene we can image, just like this:

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 }
}
let oneInch = 25.4.mm
print("One inch is \(oneInch) meters")
// Prints "One inch is 0.0254 meters"
let threeFeet = 3.ft
print("Three feet is \(threeFeet) meters")
// Prints "Three feet is 0.914399970739201 meters"

even this:

extension Int {
    func repetitions(task: () -> Void) {
        for _ in 0..<self {
            task()
        }
    }
}

3.repetitions {
    print("Hello!")
}
// Hello!
// Hello!
// Hello!

Honestly, I am started it can be used in this way.

It can extend the class we don't have access to the origianal code!!!

Let’t think!

上一篇 下一篇

猜你喜欢

热点阅读