Можно добавить расширения к существующим типам объектов 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
. Таким образом, вы не потеряете их, и новички в кодовой базе сразу же заметят их. И я бы предпочел, чтобы одноразовые расширения были конфиденциальными для файла, в котором они нужны.