Что означает слово «буквальный», когда оно используется в контексте, таком как буквальные строки и буквальные значения?
В чем разница между буквальным значением и значением?
c#
language-agnostic
terminology
glossary
prodev42
источник
источник
15
буквально означает пятнадцать в программе vs,+
что имеет особое значение «сложить две вещи вместе». Вы бы не стали рассматривать+
как представление самого знака плюс, поскольку он не является буквальным.Литерал - это значение, жестко закодированное непосредственно в вашем источнике.
Например:
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
Некоторые литералы могут иметь специальный синтаксис, поэтому вы знаете, к какому типу относится этот литерал:
//The 'M' in 10000000M means this is a decimal value, rather than int or double. var accountBalance = 10000000M;
Что отличает их от переменных или ресурсов, так это то, что компилятор может рассматривать их как константы или выполнять определенные оптимизации с кодом, в котором они используются, поскольку он уверен, что они не изменятся.
источник
Литерал - это присвоение явному значению, например
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'
РЕДАКТИРОВАТЬ: как уже указывалось, само присвоение не имеет ничего общего с определением литерала, я использовал присвоение в моем примере, но литерал также может быть передан в метод и т. Д.
источник
Литерал - это когда вы включаете значение в исходный код (в отличие от ссылки на переменную или константу). Например:
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)
Если литерал представляет некоторую величину, например физическую константу, лучше дать ему имя вместо того, чтобы писать один и тот же литерал везде, где он вам нужен. Таким образом, когда вы читаете исходный код, вы знаете, что означает число , которое обычно более важно, чем его значение (которое в любом случае может измениться).
const int maxUsers = 100; const double gravitationalAcceleration = 9.8;
Как правило, единственные числовые литералы, которые я использую (помимо инициализации констант, как указано выше), - это 0 или 1, а иногда и 2, если я пропускаю все остальные элементы в цикле. Если значение числа важнее его фактического значения (обычно так и есть), лучше назвать его.
источник
Литеральное значение - это значение, но значение также может храниться в переменной. В заявлении
string str = "string literal";
есть строковая переменная (str) и строковый литерал. После выполнения оператора они оба имеют одинаковое значение.
Имейте в виду, что во многих языках переменная и буквальное значение даже не обязательно должны быть одного типа. Например:
int a = 1.0;
Литеральное значение выше - это тип с плавающей запятой. Значение будет принудительно приведено компилятором для соответствия переменной int.
В качестве другого примера, в первой строке кода C ++ выше тип строкового литерала на самом деле вообще не является типом библиотеки
string
. Для обеспечения обратной совместимости с C строковые литералы в C ++ представляют собой массивы символов.источник
Быстрый пример:
int my_int_var = 723;
723 - Этот набор символов относится к буквальному целочисленному значению.
my_int_var - этот набор символов относится к целочисленному значению переменной .
источник
Литерал - это когда вы помещаете его в код. Итак, строковый литерал
string s = "SomeText";
Это противоположно построению строки или ее использованию в качестве параметра.
источник
Обычно, когда кто-то использует слово «литерал», они имеют в виду, что значение можно расшифровать по коду (тексту), как показано во многих примерах в других сообщениях.
Другое распространенное использование - значения, которые преобразуются в немедленные значения в сборке. Это значения, которые вставляются непосредственно в машинную команду, а не требуют загрузки регистров.
источник
Литерал - это «представление данных в исходном коде».
источник
Я слышал, что строковые литералы используются случайно для обозначения того, что в спецификации C # на самом деле называется дословными строковыми литералами. Обычный строковый литерал позволяет экранировать определенные символы (с префиксом a), например \ t для табуляции. Дословный строковый литерал предваряется символом @ и обрабатывается дословно, \ не имеет особого значения.
//regular string regular = "\thello world"; //verbatim string verbatim = @"C:\"; //the regular equivalent of this would be "C:\\"
источник
Литералы - это сокращенное обозначение значений в определенных типах, которые язык считает настолько важными или фундаментальными, что для них есть специальный синтаксический сахар.
Пример типов, значения которых часто представлены литералами:
Boolean = { true, false } Integer = { ..., -2, -1, 0, 1, 2, ... } Character = { 'a', 'b', ... } String = { "hello", "world", ... }
В некоторых языках есть литералы даже для типов функций:
Integer -> Integer = { (x: Integer) => x + 2), (x: Integer) => x/2, ...}
Примером значений, которые обычно не представлены литералами, могут быть значения типов классов:
Car(brand: String, seats: Integer) = { Car("BMW", 5), Car("Ferrari", 2), ...}
Здесь значение
Car("BMW", 5)
в типеCar
действительно однозначно обозначается с помощью последовательности символов, однако значение не представляется с помощью выделенного сокращенного литерала, а вместо этого использует общие (подробные) условные механизмы для обозначения значений любого типа класса.Термин « литерал» является синонимом терминов « значение» , « экземпляр» , « константа» , « член» и « элемент типа», но несет в себе дополнительный смысл, который говорит нам о существовании сокращения для его записи.
Мне нравится думать о литералах как о египетских иероглифах, а не о соединении символов из алфавита для выражения концепции.
источник