Dies mag wie eine triviale Frage über die Leistung erscheinen, aber in Swift, wenn Sie eine Klasse als final
deklarieren ist es notwendig, auch alle seine Methoden als final
zu deklarieren oder ist das nur eine überflüssige Redundanz? Ich möchte nur sicherstellen, dass meine konkreten Klassen als final
ausgeführt werden, um die Sicherheit und Leistung in meiner App zu maximieren. Danke für irgendwelche Tipps, Weisheiten oder Wissen im Voraus!Swift Final Classes und Funktionen
Antwort
Swift, wenn Sie Klasse als final deklariert ist es notwendig, auch alle ihre Methoden als endgültig zu erklären oder ist das nur eine überflüssige Redundanz
Ja, es überflüssig ist. Wenn die Klasse endgültig ist, sind alle ihre Mitglieder implizit endgültig. Sie erhalten die Effizienz, dynamischen Versand zu vermeiden, und was Sie tun möchten.
Also im Grunde keine Notwendigkeit, diese Methoden endgültig zu machen? –
Richtig, denn auf welche Weise könnten Sie eine dieser Methoden außer Kraft setzen? Sie können keine Unterklasse erstellen, daher gibt es keinen Ort für eine Überschreibung. – matt
Dang. Wurde bereits gefragt –
Wenn Sie "Whole module optimization" in den Compiler-Build-Einstellungen aktivieren, hat dies einen ähnlichen Effekt. Aber es wird vom Compiler für Sie gemacht und Sie müssen nicht alle Klassen als endgültig markieren. Der Nachteil: Es funktioniert nur für Apps, nicht für Bibliotheken und es erhöht drastisch die Bauzeit. Aber es könnte z.B. nur für RELEASE-Builds. – Darko
@Darko was ist 'ma'? –