Dado el método genérico register
a continuación, me gustaría definir el operador :=
como un alias simbólico.¿Cuál es la notación más corta para definir un operador como un alias de método en Scala?
def register[Prop <: Property[_]](prop: Prop): Prop
@inline
final def :=[Prop <: Property[_]] = register[Prop] _
Originalmente quería escribir algo como esto:
val := = register _
Pero eso me da la firma de la función Nothing => Nothing
. Mi próximo intento fue parametrizarlo con el tipo Prop
pero aparentemente solo funciona si lo hago un def
, que puede tomar los parámetros de tipo y pasarlos hacia adelante.
Idealmente me gustaría omitir la anotación @inline
, pero no estoy seguro de qué código objeto hace el compilador Scala.
más importante mi objetivo es que no tiene el método del :=
duplicar todas las partes de la firma del método register
excepto por el nombre y luego simplemente dejar que el ex delegado a este último.
La delegación de métodos con firmas duplicadas es exactamente lo que quería evitar. Ver mi último párrafo "Lo más importante ...". Además, no quiero tener que reenviar manualmente ningún argumento. –
@TimFriske Desafortunadamente, tendrás que hacerlo, si quieres hacer esto. –