8
votes

Quelle est la notation la plus courte de définir un opérateur comme un alias de méthode à Scala?

Compte tenu de la méthode Generic Enregistrez CODE> Méthode ci-dessous, je voudrais définir l'opérateur : = code> comme alias symbolique.

val := = register _


0 commentaires

3 Réponses :


2
votes
def :=[Prop <: Property[_]](prop: Prop) = register(prop)
should work.

2 commentaires

La délégation de méthodes avec des signatures dupliquées est exactement ce que je voulais éviter. Voir mon dernier paragraphe "le plus important ...". De plus, je ne veux pas avoir à transférer manuellement aucun argument.


@Timfriske Malheureusement, vous devrez, si vous voulez faire cela.



1
votes

Je ne crois pas qu'il y ait un moyen de réaliser ce que vous êtes après (essentiellement ce que alias vous donne dans Ruby) à Scala, car il se trouve actuellement. Le Plugin Autoproxy est une tentative de résoudre ce genre de problème, mais c'est Pas vraiment prêt pour l'utilisation de la production en raison de divers problèmes avec la génération de code dans les plugins de compilateur.


0 commentaires

1
votes

Vous pouvez faire ceci:

def := : Prop => Prop = register


0 commentaires