Scala sembra comportarsi come Java quando si tratta di conversione magia delle primitive:Come disabilitare tutte le conversioni implicite di tipi primitivi?
val a: Int = 1
val b: Double = 2.3
println(a + b) // 3.3
println(Math.max(a, b)) // 2.3
Più spesso che no, questa è stata una fonte di errori nel mio codice. C'è un modo per disabilitare queste conversioni implicite in modo che il mio esempio fornisca un avviso/errore di compilazione? Preferirei davvero scrivere
print(a.toDouble + b)
println(Math.max(a.toDouble, b))
ogni volta che ho bisogno di tali conversioni.
Si potrebbe anche voler '-Yno-predef' per disabilitare alcuni impliciti. Più in generale, vedi http://tpolecat.github.io/2014/04/11/scalac-flags.html – lmm
Grazie a entrambi. Questo articolo su scalac-flags è d'oro <3 – OlivierBlanvillain