So che ad esempio '5'
è letterale di tipo char
ma è un valore letterale 5 * 5
? Questa è espressione, tuttavia ha un valore fisso.5 * 5 è letterale o solo un'espressione?
risposta
Non penso che si possa definire letterale. È possibile che alcuni compilatori lo trattino nello stesso modo in cui trattano un letterale, vedi il commento su quale lingua stai usando.
Come descritto in Java Language Specification §15.28, è un caso particolare di espressione denominato "espressione costante in fase di compilazione". Non è letterale.
Non c'è modo di dire dal codice byte se è stato scritto come '5 * 5' o' 25' +1. –
"Letterale" è un termine grammaticale, non semantico. È il blocco di base che denota un valore costante.
Sebbene con la specifica 5 * 5
e 25
significhi esattamente lo stesso, grammaticamente il primo è un'espressione binaria che coinvolge due letterali e un operatore, e il secondo è solo un valore letterale.
Non sono sicuro, ma i termini non funzionano così?
- durante l'utilizzo di un certo valore per definire esattamente valore della variabile "in diritta via" dovrebbe essere chiamato come "letterale"
var num =5; var stringLabel = "someText";
ecc - durante l'utilizzo di una formula o prescrizione dovrebbe essere chiamata come "espressione"
var result = 5*5; var res2 = a*x;
Ma naturalmente- in risultato che anche costante si può anche essere letterale infatti ..
Ecco come farlo almeno me ..
Si tratta solo di termini - anche come in java ci sono metodi, "linguaggi C" sono funzioni, ecc. - nel senso è anche le stesse cose, quindi dipende solo al limite cosa tollererai del tutto: D
Si potrebbe voler indicare quale lingua stai usando. –
E probabilmente quale parser/compilatore stai usando. Uno intelligente dovrebbe trasformare automaticamente '5 * 5' in' 25' se lavora con operazioni matematiche. –
@AndrewGrimm Immagino che il suo tipo di ovvio sia Java considerando il tag #java. – Craig