Esiste un modo per ottenere l'errore di compilazione (o almeno un avviso) quando si assegnano alias di tipi diversi che condividono lo stesso tipo sottostante?Scala: impone l'errore di compilazione in caso di mancata corrispondenza dell'alias di tipo
In altre parole, dire che ho questo codice:
type Address = String
type City = String
def foo(x:Address) = ...
voglio ottenere un errore di tempo di compilazione/avviso se faccio:
val city: City = "Dublin"
foo(city)
Per quanto posso dire, il il compilatore lo consente perché sono lo stesso tipo sottostante.
Posso creare classi di casi di valore? Non mi piace l'utilizzo della nuova parola chiave –
È possibile definire le classi caso valore. A proposito: il motivo per cui è possibile omettere la parola chiave 'new' è il metodo' apply' dell'oggetto (generato) companion-object, quindi non è necessario definire una classe case per sbarazzarsi della parola chiave. –
Sì, lo so, preferisco semplicemente non definire i miei compagni per tutti i tipi di alias, è lungo e noioso^_ ^ –