2015-09-04 6 views
5

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?

+7

Sie möchten vielleicht angeben Welche Sprache verwendest du? –

+1

Und wahrscheinlich, welche Parser/Compiler Sie verwenden. Ein intelligentes Programm sollte automatisch '5 * 5' in' 25' umwandeln, wenn mit mathematischen Operationen gearbeitet wird. –

+1

@AndrewGrimm Ich denke, es ist offensichtlich, dass Java das #java-Tag berücksichtigt. – Craig

Antwort

1

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.

12

Wie in Java Language Specification §15.28 beschrieben, ist es ein besonderer Fall von Ausdruck namens "kompilieren Zeitkonstante Ausdruck". Es ist kein Literal.

+2

Es gibt keine Möglichkeit, aus dem Bytecode zu unterscheiden, ob dies als "5 * 5" oder "25" +1 geschrieben wurde. –

1

"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.

0

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“

    var result = 5*5; var res2 = a*x;

    genannt werden 10

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

Verwandte Themen