Ho aggiunto l'argomento della riga di comando scalac -Ywarn-value-discard
alla mia build perché questo avrebbe rilevato un bug sottile che ho appena trovato nel mio codice. Tuttavia, ora ricevo alcuni avvertimenti per il "valore non unitario scartato" che riguarda gli scarti intenzionali, non i bug. Come posso sopprimere questi avvertimenti?Avviso "scartato valore non unitario" avviso
25
A
risposta
34
Si sopprime questo avviso restituendo esplicitamente l'unità (ovvero ()
). Con esempio trasformare questo:
def method1() = {
println("Hello")
"Bye"
}
def method2() {
method1() // Returns "Bye", whihc is implicitly discarded
}
in:
def method1() = {
println("Hello")
"Bye"
}
def method2() {
method1()
() // Explicitly return unit
}
8
Secondo this answer, è anche possibile utilizzare la sintassi val _
, cioè
def method2(): Unit = {
val _ = method1()
}
Ma v'è una certa disputa se questo o la risposta di @ Régis è lo stile preferito.
Problemi correlati
- 1. avviso un valore variabile
- 2. Avviso: MapServiceToken non specificato
- 3. Differenza PHP tra avviso e avviso
- 4. JSLint - Avviso 'jQuery' non dichiarato
- 5. Rails Flash: avviso non funziona
- 6. Disabilita avviso metodo non trovato
- 7. Avviso InputConnectionWrapper
- 8. Avviso AudioQueueFreeBuffer
- 9. avviso dopo sovrascrivendo get_form
- 10. non può interpretare avviso del compilatore
- 11. ruby on rails messaggi flash -: avviso: errore: avviso e: successo?
- 12. Come disabilitare avviso e avviso in PHP nel file .htaccess?
- 13. php mysql_connect Avviso disabilitazione
- 14. avviso multilinea in Javascript
- 15. Avviso: impossibile trovare dll
- 16. Utilizzare || Avviso operatore codice
- 17. Avviso di implementazione incompleto
- 18. Avviso memoria ricevuta
- 19. ranlib: avviso per libreria
- 20. Perché questo avviso 5?
- 21. NVCC livello di avviso
- 22. Avviso su ZipArchive Chiudi
- 23. Avviso di assegnazione deselezionata
- 24. org.openqa.selenium.UnhandledAlertException: avviso inatteso aperto
- 25. Avviso di sicurezza IE8
- 26. Cetriolo + test Avviso JS
- 27. Visual Studio avviso C4133
- 28. PercentRelativeLayout - layout_width avviso mancante
- 29. Avviso di classe "__ARCLite__"
- 30. Avviso cast non selezionato in Java?
non scarti _non-Unit value_ quando si chiama 'method1' in' method2'? – botchniaque
Il primo frammento illustra un caso che ** fa ** attiva l'avviso (quando '-Ywarn-value-scarta' è abilitato), quindi sì sì in questo caso un valore non unitario (il valore di ritorno di' method1') viene scartato quando si chiama 'method1' in' method2'. Il secondo snippet restituisce esplicitamente "unit" (in altre parole '()'), rimuovendo quindi l'avviso. –