Renommer import
On dispose d'import static en Java. Scala nous offre la possibilité de renommer les classes ainsi que les méthodes statiques importées. Un exemple vaut mieux qu'un long discours ...
Renommer une classe importée
Renommer une méthode statique importée
Type alias
Un type alias permet de renommer un type existant permettant ainsi d'éviter les ambiguïtés ...Dans cet exemple, on dispose d'une classe CommandLine qu'on pourrait définir ainsi :Grâce aux alias, on peut avoir un code plus clair et parlant !!
Ici, on a renommé les types Int et Flot en Quantity et Price mieux parlant ...
Structural Types
L'idée de Structural Types est de pouvoir exprimer un type non pas en le déclarant comme une interface, une classe ou un Trait, mais plutôt en affirmant que le type doit posséder un comportement particulier (une méthode, fonction ...). Structural Type nous rappelle de duck typing utilisé dans plusieurs langages de programmation, tels que Ruby. Le principe de duck typing est simple :
If it walks like a duck and quacks like a duck, it must be a duck (si ça marche comme un canard et si ça cancane comme un canard, alors ça doit être un canard)
Du coup, connaître le type même d'une valeur n'a aucune importance, il faut avant tout s'assurer qu'on peut lui appliquer les traitements souhaités.
Dans cet exemple, on définit une méthode doTalk qui prend en paramètre tout type ayant une méthode talk définie qu'il y ait ou non une relation d'héritage ou une interface commune entre les types. Cette méthode talk doit être sans paramètre et retourner un type String
Les deux classes Cat et Dog ont la méthode talk définie et peuvent donc être passées comme paramètre à la méthode doTalk. Par contre la classe Fake n'ayant pas la méthode talk définie
ne peut être passée à la méthode doTalk.
Aucun commentaire:
Enregistrer un commentaire