[SWIFT] wenn case sei b als Int = a schneller als wenn sei b = a als? Int

Wenn Sie in Swift wirken und diesen Wert verwenden, verwenden Sie "as?", Machen Sie es zu einem "optionalen" Typ und beziehen Sie sich auf diesen "optionalen" Typ Ich denke, Sie rufen den Wert häufig mit "Optionale Bindung" ab.

let a: Any = 120
if let b = a as? Int {
    //Verarbeitung mit b
}

In diesem Fall ist der Fluss jedoch etwas kompliziert, da er einmal "Optional" durchläuft.

Es gibt noch einen anderen Weg, es zu schreiben.

let a: Any = 120
if case let b as Int = a {
    //Verarbeitung mit b
}

Mit dieser Funktion können Sie sicher wirken, ohne Optional durchlaufen zu müssen.

Geschwindigkeitsoberfläche

Geschwindigkeit beim 10.000-fachen Laufen

as? case
0.011s 0.001s

Es gibt einen Unterschied von ungefähr 10 mal.

Die Swift Standart Library verwendet auch häufiger "case".

Zitiert aus dem Inhalt von Swift.print

![Screenshot 2020-10-12 18.00.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117659/d90e5b26-0aa2-42af-f6f4 -6bd5ff9d8025.png) https://github.com/apple/swift/blob/9af806e8fd93df3499b1811deae7729176879cb0/stdlib/public/core/OutputStream.swift#L375

Recommended Posts

wenn case sei b als Int = a schneller als wenn sei b = a als? Int
Der Fall, in dem das nächste () der Ergebnismenge mit der Beurteilungsmethode verwechselt wurde, ob es das nächste gibt