Es ist möglich, Erweiterungen zu vorhandenen Swift-Objekttypen mithilfe von Erweiterungen hinzuzufügen, wie in der Sprachspezifikation beschrieben .
Infolgedessen können Erweiterungen wie die folgenden erstellt werden:
extension String {
var utf8data:NSData {
return self.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!
}
}
Was ist jedoch die beste Benennungspraxis für Swift-Quelldateien, die solche Erweiterungen enthalten?
In der Vergangenheit sollte die Konvention extendedtype+categoryname.m
für den Objective-C-Typ verwendet werden, wie im Objective-C-Handbuch erläutert . Das Swift-Beispiel hat jedoch keinen Kategorienamen, und es String.swift
erscheint nicht angemessen , ihn aufzurufen .
Die Frage ist also: String
Wie soll die schnelle Quelldatei angesichts der obigen Erweiterung heißen?
ClassName+ExtensionName
Format folgten und die ich nicht zu viele Leute sehe, die sie noch verwenden. Außerdem finde ich das klobig, anstatt nur Klassen und Erweiterungen zusammen zu definieren oder der Datei einen besseren Namen zu geben FooAbleTypes
und Instanzen insgesamt zu definieren.
Extensions.swift
. Auf diese Weise verlieren Sie nicht den Überblick und Neulinge in der Codebasis werden sie sofort bemerken. Und ich würde es vorziehen, einmalige Erweiterungen für die Datei, in der sie benötigt werden, privat zu halten.