Можно добавить расширения к существующим типам объектов Swift, используя расширения, как описано в спецификации языка .
В результате возможно создание расширений, таких как:
extension String {
var utf8data:NSData {
return self.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!
}
}
Тем не менее, какова наилучшая практика именования исходных файлов Swift, содержащих такие расширения?
В прошлом, соглашение было использовать extendedtype+categoryname.mдля типа Objective-C , как описано в руководстве по Objective-C . Но в примере Swift нет названия категории, и называть его String.swiftнеуместно.
Таким образом, вопрос заключается в следующем: с учетом вышеуказанного Stringрасширения, как должен называться исходный файл swift?
ClassName+ExtensionNameформату, и я не вижу, чтобы их использовали слишком много людей. Кроме того, я нахожу это неуклюжим вместо того, чтобы просто определять классы и расширения вместе или давать файлу более точное имя, например, FooAbleTypesи определять экземпляры в совокупности.
Extensions.swift. Таким образом, вы не потеряете их, и новички в кодовой базе сразу же заметят их. И я бы предпочел, чтобы одноразовые расширения были конфиденциальными для файла, в котором они нужны.