Frage

Was bedeutet das Wort „wörtlichen“ bedeutet, wenn sie in Zusammenhang wie Literalzeichenfolgen und Literalwerte verwendet?

Was ist der Unterschied zwischen einem wörtlichen Wert und einem Wert?

War es hilfreich?

Lösung

Ein Literal "jede Notation für repräsentiere einen Wert innerhalb Quellcode" ( wikipedia )

(Vergleichen Sie dies mit Bezeichner , die sehen auf einen Wert im Speicher.)

Beispiele:

  • "hey" (a string)
  • false (a boolean)
  • 3.14 (eine reelle Zahl)
  • [1,2,3] (eine Liste von Zahlen)
  • (x) => x*x (eine Funktion)
  • /^1?$|^(11+?)\1+$/ (a regexp)

Einige Dinge, die nicht Literale sind:

  • std::cout (eine Kennung)
  • foo = 0; (a statement)
  • 1+2 (Ausdruck)

Andere Tipps

Ein Literal ist ein Wert, der hartcodierte direkt in Ihre Quelle.

wurde

Zum Beispiel:

string x = "This is a literal";
int y = 2; // so is 2, but not y
int z = y + 4; // y and z are not literals, but 4 is
int a = 1 + 2; // 1 + 2 is not a literal (it is an expression), but 1 and 2 considered separately are literals

Einige Literale können eine spezielle Syntax, so dass Sie wissen, was die wörtliche Typ ist:

//The 'M' in 10000000M means this is a decimal value, rather than int or double.
var accountBalance = 10000000M; 

Was unterscheidet sie von Variablen oder Ressourcen ist, dass der Compiler sie als Konstanten behandeln oder führen bestimmte Optimierungen mit Code, in dem sie verwendet werden, weil es sicher ist, werden sie nicht ändern.

Ein Literal ist eine Zuordnung zu einem expliziten Wert, wie beispielsweise

int i = 4;  // i is assigned the literal value of '4'
int j = i   // j is assigned the value of i.  Since i is a variable,  
            //it can change and is not a 'literal'

EDIT:. Wie erwähnt, Zuordnung selbst nichts mit der Definition eines wörtlichen zu tun, war ich in meinem Beispiel mit Zuordnung, sondern ein wörtlichen kann auch in eine Methode übergeben werden, etc

Eine wörtliche ist, wenn Sie den Wert im Quellcode enthalten (im Gegensatz zu einer Variable oder eine Konstante Referenzierung). Zum Beispiel:

int result = a + 5; // a is a variable with a value, 5 is a literal

string name = "Jeff Atwood"; // name is a variable initialized
                             // with the string literal, "Jeff Atwood"

int[] array = new int[] {1, 2, 3}; // C# has array literals (this is actually three
                                   // int literals within an array literal)

Wenn die wörtliche eine gewisse Menge darstellt, wie eine physikalische Konstante, dann ist es besser, es geben Sie einen Namen, anstatt die gleiche wörtliche Schreiben überall Sie es brauchen. Auf diese Weise, wenn Sie den Quellcode lesen, wissen Sie, was die Zahl bedeutet , die als ihr Wert in der Regel wichtiger sind (was sowieso ändern könnte).

const int maxUsers = 100;
const double gravitationalAcceleration = 9.8;

Im Allgemeinen sind die einzigen Zahlenliterale ich (neben initialisieren Konstanten wie oben) 0 oder 1 sind, und manchmal 2, wenn ich jedes andere Element in einer Schleife bin zu überspringen. Wenn der Sinn die Anzahl wichtiger ist als sein tatsächlicher Wert (es ist in der Regel), ist es besser, es zu nennen.

Ein wörtlicher Wert ist ein Wert, sondern auch ein Wert in einer Variablen gespeichert werden könnte. In der Anweisung

string str = "string literal";

gibt es ein String-Variable (str) und ein Zeichenfolgenliteral. Nach der Ausführung der Anweisung haben sie beide den gleichen Wert.

Beachten Sie, dass in vielen Sprachen die Variable und der wörtliche Wert nicht unbedingt auch die gleiche Art sein. Zum Beispiel:

int a = 1.0;

Der wörtliche Wert über einen Gleitkomma-Typen. Der Wert wird durch den Compiler dazu gezwungen werden, in den int-Variable zu passen.

Für ein anderes Beispiel in der ersten Zeile von C ++ Code über dem Typ eines Zeichenfolgenliterals ist eigentlich nicht die Bibliothek Typ string überhaupt. Zur Aufrechterhaltung der Abwärtskompatibilität mit C, Stringliterale in C ++ sind char-Arrays.

Schnell Beispiel:

int my_int_var = 723;

723 -. Dieser Satz von Zeichen bezieht sich auf einen wörtlichen Integer-Wert

my_int_var -. Dieser Satz von Zeichen bezieht sich auf einen variable ganzzahliger Wert

Ein wörtliches ist, wenn Sie es im Code setzen. So ein String-Literal ist

string s = "SomeText";
Dieses

ist im Gegensatz zum Aufbau des String oder es als Parameter nehmen.

Im Allgemeinen, wenn jemand verwendet das Wort wörtliche sie bedeuten den Wert aus dem Code (Text) entzifferbar ist wie in vielen der Beispiele in anderen Beiträgen gezeigt.

Eine weitere häufige Verwendung ist für Werte, die unmittelbaren Werte in der Montage umgewandelt werden. Dies sind Werte, die eher direkt in den Maschinenbefehl eingefügt werden als erforderlich Register geladen wird.

Ich habe zufällig auf das, was die C # Spezifikation bezieht sich eigentlich auf so wörtlich Stringliterale. Eine regelmäßige Stringliteral ermöglicht die escaping bestimmter Zeichen (durch einen Präfix), wie \ t für eine Registerkarte. Ein wörtlich Stringliteral vorangestellt durch @ und wörtlich verarbeitet, \ hat keine besondere Bedeutung.

//regular
string regular = "\thello world";
//verbatim
string verbatim = @"C:\";
//the regular equivalent of this would be "C:\\"

A Literal "Source-Code-Darstellung von Daten."

Literale sind Kurzschreibweise für Werte in bestimmten Typen, die Sprache so wichtig oder grundsätzliche Auffassung, dass es Syntax Zucker nur für sie gewidmet hat.

Beispiel von Typen, deren Werte werden oft von Literalen dargestellt:

Boolean = { true, false }
Integer = { ..., -2, -1, 0, 1, 2, ... }
Character = { 'a', 'b', ... }
String = { "hello", "world", ... }

Einige Sprachen haben Literale auch für die Funktion Typen:

Integer -> Integer = { (x: Integer) => x + 2), (x: Integer) => x/2, ...}

Ein Beispiel von Werten, die in der Regel nicht mit Literalen vertreten wäre Werte von Klassentypen:

Car(brand: String, seats: Integer) = { Car("BMW", 5), Car("Ferrari", 2), ...}

Hier ist der Wert Car("BMW", 5) in der Art Car in der Tat bezeichnet wird eindeutig eine Folge von Symbolen, jedoch wird der Wert nicht mit einem dedizierten Stenografie Literal dargestellt, sondern verwendet stattdessen allgemein (ausführlich) fiktive Mechanismen für Werte aller Klassentypen angibt .

Der Begriff wörtliche ist ein Synonym für Begriffe Wert Instanz Konstante Mitglied und -Element von einer Art, sondern trägt ein bisschen mehr Sinn, der uns sagt, es ist eine Abkürzung für das Schreiben es nach unten.

Ich mag über Literale als ägyptisches Hieroglyphen denken, wie aus einem Alphabet, um die Aneinanderreihung Zeichen gegen ein Konzept zum Ausdruck bringen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top