typealias de classe générique dans Swift
Je suis en train de faire un typealias d'un type générique de la classe comme suit
class Cars<T> {
...
}
typealias SportCars = Cars
mais j'obtiens une erreur de compilation que suivre Reference to generic type 'Cars' requires argument in <...>
source d'informationauteur Encore PTL
Vous devez vous connecter pour publier un commentaire.
Droite maintenant, vous ne pouvez pas faire cela avec les génériques, comme vous l'avez découvert.
Le Langage de Programmation Swift iBook chapitre "Alias de Type de Déclaration" n'a pas fait état de quelque chose au sujet de quels types ne peut pas être un alias. Mais il ressemble simplement que partielle types (comme les médicaments génériques sans espaces réservés spécifié) ne sont pas autorisés.
Si vous pensez que ce quelque chose Swift doit faire, file un Radar (rapport de bogue avec Apple.
Lors de mes recherches pour cette réponse, j'ai remarqué que le de type partiel problème ne touche pas seulement les
typealias
mais est visible ailleurs ainsi:L'ensemble de ces travaux si vous spécifiez l'espace réservé types:
Solution Possible consiste à envelopper les alias de type de en class/struct:
Je pense que le plus loin que vous pouvez aller avec
typealias
et les génériques est de créer un alias de type spécialisé, tels que:Si vous avez besoin d'un autre nom pour le même type générique, vous pouvez simplement sous-classe:
ce n'est pas exactement un alias (vous ne pouvez pas utiliser
Cars
quandSportCars
est prévu, mais l'inverse est possible), mais dans un environnement "contrôlé" il peut travailler. Je ne voudrais pas l'utiliser moi-même bien que.