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.m
pour 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.swift
ne semble pas approprié.
La question est donc: étant donné l' String
extension ci-dessus , comment le fichier source swift doit-il être appelé?
ClassName+ExtensionName
format, 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 FooAbleTypes
et 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.