È possibile definire un parametro x in un metodo, in modo tale che il tipo di x sia un tipo generico T
che implementa una determinata firma di funzione (diciamo def apply() : Double
), senza introdurre un nuovo tipo?Scala e tipo associato a una determinata operazione
[Esempio] L'obiettivo è quello di definire qualcosa di simile (sto usando una sintassi adhoc solo per il gusto di illustrazione):
def foo(x : T with def apply() : Double) = { ... }
Attualmente, ho potuto introdurre un nuovo tipo ApplyDouble
, ma che richiederebbe me si estende tutti i possibili tipi le cui istanze sono parametri legali per 'foo', e la firma di foo sarebbe poi trasformato in
def foo(x : ApplyDouble) = { ... }
Grazie. Questo è esattamente quello che stavo cercando;) – leco