84 votes

Que signifie le mot "littérale" signifie?

Que signifie le mot "littérale" de dire quand utilisé dans le contexte tel que des chaînes de caractères littérales et des valeurs littérales? quelle est la différence entre une valeur littérale et la valeur?

85voto

Joel Coehoorn Points 190579

Un littéral est une valeur qui a été codée en dur directement dans votre source.

Par exemple:

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

Certains littéraux peuvent avoir une syntaxe spéciale, de sorte que vous savez quel type de la valeur littérale est:

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

Ce qui les distingue de variables ou de ressources, c'est que le compilateur ne peut pas les traiter comme des constantes ou pour effectuer certaines optimisations de code où ils sont utilisés, car il est certain qu'ils ne changeront pas.

16voto

Ed S. Points 70246

Un littéral est une affectation d'une valeur explicite, comme

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: Comme l'a souligné, la cession elle-même n'a rien à voir avec la définition d'un littéral, j'ai été en utilisant l'affectation dans mon exemple, mais un littéral peut également être passé dans une méthode, etc.

13voto

Matthew Crumley Points 47284

Un littéral est lorsque vous incluez la valeur dans le code source (par opposition à référencer une variable ou une constante). Par exemple:

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)

Si le littéral représente une certaine quantité, comme une constante physique, il est préférable de donner un nom au lieu d'écrire la même littéral partout où vous en avez besoin. De cette façon, lorsque vous lisez le code source, vous savez ce que le nombre de moyens, qui est généralement plus important que sa valeur (ce qui pourrait changer de toute façon).

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

Généralement, la seule littéraux numériques que j'utilise (en plus d'initialiser les constantes comme ci-dessus) sont 0 ou 1, et parfois 2 si je suis ignorant tous les autres élément dans une boucle. Si le sens du nombre est plus important que sa réelle valeur (c'est souvent le cas), de son mieux pour le nommer.

6voto

Bill the Lizard Points 147311

Une valeur littérale est une valeur, mais une valeur peut également être stocké dans une variable. Dans la déclaration

string str = "string literal";

il y a une variable chaîne de caractères (str) et une chaîne littérale. Après l'exécution de l'instruction qu'ils ont tous deux la même valeur.

Sachez que, dans de nombreuses langues la variable et la valeur littérale n'est pas nécessairement la même doivent être du même type. Par exemple:

int a = 1.0;

La valeur littérale ci-dessus est un type à virgule flottante. La valeur sera contraint par le compilateur pour entrer dans la variable int.

Pour un autre exemple, dans la première ligne de code C++ ci-dessus le type de littéral de chaîne n'est en fait pas le type de bibliothèque string à tous. Afin d'assurer la rétrocompatibilité avec C, les littéraux de chaîne en C++ sont des tableaux de char.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X