Можна додати розширення до існуючих типів об'єктів 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
. Таким чином, ви не втратите їх слід, і новачки в кодовій базі негайно їх помітять. І я вважаю за краще зберігати разові розширення приватними для потрібного файлу.