Es posible agregar extensiones a los tipos de objetos Swift existentes usando extensiones, como se describe en la especificación del lenguaje .
Como resultado, es posible crear extensiones como:
extension String {
var utf8data:NSData {
return self.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!
}
}
Sin embargo, ¿cuál es la mejor práctica de nomenclatura para los archivos fuente de Swift que contienen tales extensiones?
En el pasado, la convención era usar extendedtype+categoryname.m
para el tipo Objective-C como se discutió en la guía Objective-C . Pero el ejemplo de Swift no tiene un nombre de categoría, y llamarlo String.swift
no parece apropiado.
Entonces la pregunta es: dada la String
extensión anterior , ¿cómo debe llamarse el archivo fuente rápido?
ClassName+ExtensionName
formato, y que no veo que mucha gente siga usando. Además, me parece torpe en lugar de solo definir clases y extensiones juntas, o darle al archivo un nombre mejor FooAbleTypes
y definir instancias en conjunto.
Extensions.swift
. De esa manera, no los perderá de vista y los recién llegados a la base de código los notarán de inmediato. Y preferiría mantener las extensiones únicas privadas para el archivo en el que se necesitan.