Go ha una sfortunata mancanza di affermazioni incorporate. Voglio realizzare loro in questo modo:Go ottimizza le if-statement irraggiungibili?
const ASSERT = true
func SomeFunction() {
if ASSERT && !some_condition_that_should_always_be_true() {
panic("Error message or object.")
}
}
La mia domanda è la volontà istruzione if-essere ottimizzata se definisco const ASSERT = false
?
La specifica go non applica alcuna rimozione di codice guasto. Una particolare implementazione è libera di farlo in modo aggressivo come meglio ritiene opportuno. – JimB
@JimB http://golang.org/ref/spec#Constant_expressions valutate al momento della compilazione? – Uvelichitel
@Uvelichitel: sì, ma questo non ha nulla a che fare con la rimozione del codice morto. Il compilatore è ancora libero di lasciare il blocco if nell'oggetto compilato. – JimB