Vous pourrait faire avec une immense quantité de réflexion, d'une manière un peu fragile, en utilisant les (sans papiers) copy$default$1
méthodes et types correspondant au large de la méthode copy
, et ayant à la fois mettre en œuvre un trait qui comprenait def a: List[String]
et def a_=(a0: List[String])
. Mais c'est une mauvaise idée. le support n'est pas complètement là (par exemple si vous l'avez mélangé dans une classe non-classe, il échouerait à l'exécution), il est lent, et il enregistre seulement une petite quantité de frappe. Si vous avez un cas où cela permettrait d'économiser une énorme quantité de frappe, je vous encourage à utiliser la génération de code à la place (c'est-à-dire le code Scala qui écrit le code Scala) avec une passe supplémentaire pour la compilation.
De quelle façon? Quel semble être le problème? –
@Daniel Dupliqué 'def + (s: String) = copie (a = s :: a)', Je suppose –
Code dupliqué. Pas un problème en soi. –