Можна додати розширення до існуючих типів об'єктів Swift, використовуючи розширення, як описано в специфікації мови .
Як результат, можна створити розширення, такі як:
extension String {
var utf8data:NSData {
return self.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!
}
}
Однак яка найкраща практика іменування вихідних файлів Swift, що містять такі розширення?
У минулому конвенція мала використовуватись extendedtype+categoryname.mдля типу "Об'єктив-С", про який говорилося в посібнику "Об'єктив-С" . Але приклад Swift не має назви категорії, і називати його String.swiftне здається доцільним.
Отже, питання: з огляду на вищезазначене Stringрозширення, як слід називати швидкий вихідний файл?
ClassName+ExtensionNameформату, і які я не бачу занадто багато людей досі використовують. Крім того, я вважаю, що незграбний замість того, щоб просто визначити класи та розширення разом, або надати файлу кращу назву на зразок FooAbleTypesта визначення екземплярів у сукупності.
Extensions.swift. Таким чином, ви не втратите їх слід, і новачки в кодовій базі негайно їх помітять. І я вважаю за краще зберігати разові розширення приватними для потрібного файлу.