Możliwe jest dodawanie rozszerzeń do istniejących typów obiektów Swift za pomocą rozszerzeń, zgodnie z opisem w specyfikacji języka .
Dzięki temu możliwe jest tworzenie rozszerzeń takich jak:
extension String {
var utf8data:NSData {
return self.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!
}
}
Jaka jest jednak najlepsza praktyka nazywania plików źródłowych Swift zawierających takie rozszerzenia?
W przeszłości konwencja była używana extendedtype+categoryname.m
dla typu Objective-C, jak omówiono w przewodniku Objective-C . Ale przykład Swift nie ma nazwy kategorii, a nazywanie jej String.swift
nie wydaje się odpowiednie.
Tak więc pytanie brzmi: biorąc pod uwagę powyższe String
rozszerzenie, jak powinien się nazywać szybki plik źródłowy?
ClassName+ExtensionName
formatem i których nie widzę zbyt wielu ludzi nadal używa. Poza tym uważam, że jest to niezgrabne zamiast po prostu definiowania klas i rozszerzeń razem lub nadawania plikowi lepszej nazwy FooAbleTypes
i definiowania instancji w agregacji.
Extensions.swift
. W ten sposób nie stracisz ich z oczu, a nowicjusze w bazie kodu natychmiast je zauważą. I wolałbym, aby jednorazowe rozszerzenia były prywatne w stosunku do pliku, w którym są potrzebne.