¿Qué significa la palabra "literal" cuando se usa en un contexto como cadenas literales y valores literales?
¿Cuál es la diferencia entre un valor literal y un valor?
c#
language-agnostic
terminology
glossary
prodev42
fuente
fuente
15
literalmente significa quince en el programa vs+
que tiene el significado especial de "sumar dos cosas". No lo trataría+
como si representara el signo más en sí mismo, ya que no es un literal.Un literal es un valor que se ha codificado directamente en su fuente.
Por ejemplo:
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
Algunos literales pueden tener una sintaxis especial, por lo que sabe de qué tipo es el literal:
//The 'M' in 10000000M means this is a decimal value, rather than int or double. var accountBalance = 10000000M;
Lo que los diferencia de las variables o los recursos es que el compilador puede tratarlos como constantes o realizar ciertas optimizaciones con el código donde se usan, porque es seguro que no cambiarán.
fuente
Un literal es una asignación a un valor explícito, como
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'
EDITAR: Como se señaló, la asignación en sí no tiene nada que ver con la definición de un literal, estaba usando asignación en mi ejemplo, pero un literal también se puede pasar a un método, etc.
fuente
Un literal es cuando incluye el valor en el código fuente (en lugar de hacer referencia a una variable o una constante). Por ejemplo:
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 el literal representa alguna cantidad, como una constante física, es mejor darle un nombre en lugar de escribir el mismo literal donde lo necesite. De esa manera, cuando lee el código fuente, sabe lo que significa el número , que suele ser más importante que su valor (que podría cambiar de todos modos).
const int maxUsers = 100; const double gravitationalAcceleration = 9.8;
Generalmente, los únicos literales numéricos que uso (además de inicializar constantes como el anterior) son 0 o 1, y a veces 2 si me salto todos los demás elementos de un bucle. Si el significado del número es más importante que su valor real (normalmente lo es), es mejor nombrarlo.
fuente
Un valor literal es un valor, pero un valor también se puede almacenar en una variable. En la declaración
string str = "string literal";
hay una variable de cadena (str) y una literal de cadena. Después de que se ejecuta la instrucción, ambos tienen el mismo valor.
Tenga en cuenta que en muchos idiomas la variable y el valor literal no tienen por qué ser necesariamente del mismo tipo. Por ejemplo:
int a = 1.0;
El valor literal anterior es un tipo de punto flotante. El compilador forzará el valor para que se ajuste a la variable int.
Para otro ejemplo, en la primera línea del código C ++ arriba el tipo de una cadena literal no es en realidad el tipo de biblioteca
string
. Para mantener la compatibilidad con versiones anteriores de C, los literales de cadena en C ++ son matrices de caracteres.fuente
Ejemplo rápido:
int my_int_var = 723;
723: este conjunto de caracteres se refiere a un valor entero literal .
my_int_var: este conjunto de caracteres se refiere a un valor entero variable .
fuente
Un literal es cuando lo pones en el código. Entonces una cadena literal es
string s = "SomeText";
Esto es en contraposición a construir la cadena o tomarla como parámetro.
fuente
Generalmente, cuando alguien usa la palabra literal, quiere decir que el valor es descifrable del código (texto) como se muestra en muchos de los ejemplos de otras publicaciones.
Otro uso común es para valores que se convierten en valores inmediatos en ensamblado. Estos son valores que se insertan directamente en la instrucción de la máquina en lugar de requerir cargas de registro.
fuente
Un literal es "representación de datos en código fuente".
fuente
He escuchado que los literales de cadena se usan casualmente para referirse a lo que la especificación C # realmente llama literales de cadena textuales. Un literal de cadena regular permite el escape de ciertos caracteres (con el prefijo a), como \ t para una pestaña. Un literal de cadena textual se antepone @ y se procesa literalmente, \ no tiene un significado especial.
//regular string regular = "\thello world"; //verbatim string verbatim = @"C:\"; //the regular equivalent of this would be "C:\\"
fuente
Los literales son una notación abreviada de valores en ciertos tipos que el lenguaje considera tan importantes o fundamentales que tiene una sintaxis dedicada solo para ellos.
Ejemplo de tipos cuyos valores a menudo se representan mediante literales:
Boolean = { true, false } Integer = { ..., -2, -1, 0, 1, 2, ... } Character = { 'a', 'b', ... } String = { "hello", "world", ... }
Algunos lenguajes tienen literales incluso para tipos de funciones:
Integer -> Integer = { (x: Integer) => x + 2), (x: Integer) => x/2, ...}
Un ejemplo de valores que normalmente no se representan con literales serían valores de tipos de clase:
Car(brand: String, seats: Integer) = { Car("BMW", 5), Car("Ferrari", 2), ...}
Aquí, el valor
Car("BMW", 5)
en el tipoCar
se denota de forma única usando una secuencia de símbolos, sin embargo, el valor no se representa usando un literal abreviado dedicado, sino que usa mecanismos nocionales generales (detallados) para denotar valores de cualquier tipo de clase.El término literal es sinónimo de los términos valor , instancia , constante , miembro y elemento de un tipo, pero tiene un significado adicional que nos dice que hay una forma abreviada de escribirlo.
Me gusta pensar en los literales como jeroglíficos egipcios en lugar de encadenar caracteres de un alfabeto para expresar un concepto.
fuente