Il est possible d'ajouter des extensions aux types d'objets Swift existants à l'aide d'extensions, comme décrit dans la spécification du langage .
En conséquence, il est possible de créer des extensions telles que:
extension String {
var utf8data:NSData {
return self.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!
}
}
Cependant, quelle est la meilleure pratique de dénomination pour les fichiers source Swift contenant de telles extensions?
Dans le passé, la convention était d'utiliser extendedtype+categoryname.mpour le type Objective-C comme indiqué dans le guide Objective-C . Mais l'exemple Swift n'a pas de nom de catégorie et l'appeler String.swiftne semble pas approprié.
La question est donc: étant donné l' Stringextension ci-dessus , comment le fichier source swift doit-il être appelé?
ClassName+ExtensionNameformat, et que je ne vois pas encore trop de gens utiliser. En outre, je trouve cela maladroit au lieu de simplement définir des classes et des extensions ensemble, ou de donner au fichier un meilleur nom comme FooAbleTypeset de définir des instances dans l'agrégat.
Extensions.swift. De cette façon, vous ne les perdrez pas de vue et les nouveaux arrivants dans la base de code les remarqueront immédiatement. Et je préfère garder les extensions ponctuelles privées pour le fichier dans lequel elles ont besoin.