Ich weiß, dass zum Beispiel '5'
ist Literal des Typs char
aber 5 * 5
ein Literal ist? Dies ist Ausdruck, hat jedoch einen festen Wert.Ist 5 * 5 ein Literal oder nur ein Ausdruck?
Antwort
Ich glaube nicht, dass Sie es ein Literal nennen können. Es ist möglich, dass einige Compiler sie genauso behandeln, wie sie mit einem Literal umgehen, siehe den Kommentar, welche Sprache Sie verwenden.
Wie in Java Language Specification §15.28 beschrieben, ist es ein besonderer Fall von Ausdruck namens "kompilieren Zeitkonstante Ausdruck". Es ist kein Literal.
Es gibt keine Möglichkeit, aus dem Bytecode zu unterscheiden, ob dies als "5 * 5" oder "25" +1 geschrieben wurde. –
"Literal" ist ein grammatikalischer Begriff, nicht semantisch. Es ist der Grundbaustein, der einen konstanten Wert bezeichnet.
Obwohl durch die Spezifikation 5 * 5
und 25
bedeuten genau das gleiche, grammatikalisch der erste ist ein binärer Ausdruck mit zwei Literalen und einem Operator, und der zweite ist nur ein Literal.
Ich bin mir nicht sicher, aber funktioniert das nicht so etwas?
- , während Sie einen Wert verwenden, um genau Wert der Variablen definieren „in geraden Weg“ sollte es als „wörtlichen“
var num =5; var stringLabel = "someText";
usw. - , während Sie eine Formel verwenden genannt werden oder Rezept sollte es als „Ausdruck“
genannt werden 10var result = 5*5; var res2 = a*x;
Aber Kurs- in Ergebnis, die in der Tat kann es konstant si auch Literal auch ..
Das ist, wie es zumindest bekommen me ..
Es ist nur über Begriffe - auch in Java gibt es Methoden, "C-Sprachen" sind Funktionen usw. - in Bedeutungen sind es auch die gleichen Dinge, also kommt es nur auf die Grenze an, was Sie überhaupt tolerieren: D
- 1. Regulärer Ausdruck für 2 oder 5 Ziffern
- 2. HTML 5 - Nummer regulären Ausdruck
- 3. Was ist ein Mitgliedschaftsanbieter auf MVC 5?
- 4. Cron Ausdruck Unterschied zwischen */5 und 0/5
- 5. Schleifen durch ein ForEach Multidimensional Array 5 mal nur
- 6. Javascript Regulärer Ausdruck zu 5 oder 9 Ziffern Postleitzahl
- 7. Was ist ein binärer Literal?
- 8. RxJS 5: Kann ich ein "BehaviorObservable" erstellen?
- 9. Java Summe ein Vielfaches von 3 oder 5 unter N
- 10. SPARQL-Abfrage: Wie bekomme ich nur ein Literal oder eine Zeichenfolge als Ergebnis?
- 11. Wie ein Timeout-Fehler in Laravel 5
- 12. Richtig ein Java-String-Literal
- 13. Ist es sicher anzunehmen, dass ein Server PHP 5 hätte?
- 14. cdecl Klärung erforderlich: Was ist ein "Array 5?"
- 15. Wie ein Modell in MVC 5 Scaffold
- 16. 'Javascript' ist ein unerwartetes Token. Der erwartete Token ist ‚"‘oder‚‘ 'Linie 5, Position 18
- 17. Haskell: Warum ist ein Ausdruck mit mehreren Zeilen ein Syntaxfehler?
- 18. Rails 5: ActiveRecord ODER Abfrage
- 19. Integer Literal ist ein Objekt in Python?
- 20. ODER-Klausel in Rails 5
- 21. Ist ID ein "Stammtyp" oder nur ein Typ?
- 22. laravel 5 nur root route funktioniert
- 23. Laravel 5-Installationsprogramm erstellt nur leere Ordner
- 24. Was ist der Unterschied zwischen 5 und [5] in MATLAB?
- 25. Html 5 Videoplayer. Audio nur Option
- 26. Silverlight 5 und Safari 5 Browser
- 27. Numpy-Array [? 5 5] bis fünf Arrays mit [? 5]
- 28. Regulärer Ausdruck Literal-Text-Bereich
- 29. Was ist der Unterschied zwischen 1..5, [* 1..5] und [1..5] in Groovy?
- 30. Verwenden iOS 5 Simulator in XCode 5?
Sie möchten vielleicht angeben Welche Sprache verwendest du? –
Und wahrscheinlich, welche Parser/Compiler Sie verwenden. Ein intelligentes Programm sollte automatisch '5 * 5' in' 25' umwandeln, wenn mit mathematischen Operationen gearbeitet wird. –
@AndrewGrimm Ich denke, es ist offensichtlich, dass Java das #java-Tag berücksichtigt. – Craig