Что такое функция литерал
Перейти к содержимому

Что такое функция литерал

  • автор:

Все о литералах в вопросах разработки

В программировании при составлении программного обеспечения необходимо знать немало особенностей выбранного языка разработки. Во многих из них есть так называемые литералы, значения которых новичкам не всегда понятны.

В данной статье будет рассказано о том, что такое literals, какие у них бывают типы, чем они отличаются друг от друга. В программировании соответствующие ответы значительно упростят процедуру написания контента.

Определение

Литерал в программировании – это безымянная константа. Представляет собой своеобразную запись в имеющемся коде приложения, которая выражена фиксированным значением. Литералами выступают еще и представления значения некоторых типов данных.

Нужно запомнить следующие особенности literal:

  • они представлены константами, которые включаются непосредственно в текст имеющегося приложения;
  • не могут изменяться по мере обработки программного кода – это одно из их ключевых отличий от переменных;
  • изменяются в имеющемся контенте только в режиме редактирования;
  • бывают разных типов.

Настоящие именованные константы тоже не подлежат в программировании редактированию во время непосредственного исполнения приложения. В некоторых языках разработки (пример – Delphi) при помощи ключевого слова «const» (без кавычек) иногда обозначаются инициализированные до начала обработки кода статические переменные. Такие компоненты могут редактироваться в процессе работы приложения.

Все о литералах в вопросах разработки

Использовать разнообразные типы литералов не слишком трудно. Но сначала нужно знать, как выглядят соответствующие компоненты. Пример выше поможет лучше разобраться в соответствующем вопросе.

Здесь «1» и «Кот» — это литералы, а string pet и int number – непосредственные переменные.

Разновидности

Почти каждый язык программирования позволяет использовать разнообразные типы literals. В зависимости от «разновидности» будет меняться содержание литерала.

В языках разработки предусматриваются примитивные типы. Они отличаются по синтаксису в ЯП. Далее будут приведены примеры того, в коде выглядят литералы Java и C#. Чаще всего встречаются следующие типы литерала:

  • символьный;
  • строковый;
  • логический;
  • пустое значение (null);
  • регулярное выражение;
  • литералы-функции;
  • литералы-объекты.

Далее использование рассматриваемого компонента будет разобрано на примере C# и Java. На второй язык программирования сделан больший упор ввиду его повсеместного и стремительного распространения.

Числа

Первый вариант – это числовые литералы. Они бывают:

  • целочисленные;
  • с плавающей запятой.

Целочисленный литерал – это почти то же самое, что и целые числа. Соответствующая запись является элементарной. Все числовые компоненты записываются в привычной, «стандартной» форме без указывающих символов и прочих составляющих.

Любое число в Java – это по умолчанию целочисленный literal. Допускается явное задание значения переменной или количества итераций в имеющемся цикле. В Java поддерживаются 4 системы счисления:

  • двоичная;
  • десятичная;
  • шестнадцатеричная;
  • восьмеричная.

При рассмотрении числовых литералов в Java нужно запомнить – в JDK 7 появилась возможность записи двоичных значений. Для этого используются префиксы 0b и 0B, а после осуществляется запись с использованием нулей и единиц.

Несмотря на то, что числовые (целые) задаются в разных системах счисления, они будут обрабатываться как десятичные. Это значит, что выход за пределы значений приводят к ошибкам компиляции:

По умолчанию целочисленный literal в Java имеет тип int. Если его «параметр» выйдет за пределы присваиваемой переменной, значит в приложении на этапе компиляции возникнет ошибка. Можно использовать тип long. Для этого в конце строчки необходимо выставить символ «L»:

Все о литералах в вопросах разработки

А вот так выглядит присваивание значения «целому» литералу в C#:

Все о литералах в вопросах разработки

Целочисленные «параметры» могут быть как положительными, так и отрицательными.

С плавающей точкой (вещественные)

Следующий вариант – это дробные числа. Они носят название вещественных или «с плавающей точкой». Означает это то, что литералы могут обозначать не только целые, но и дробные элементы. Особо полезный вариант, если в коде использована функция или иное математическое выражение.

Вещественный тип необходимо можно представить несколькими способами:

  • классической десятичной дробью;
  • в научном виде (дробь + суффикс в виде e или E и степени 10).

В Java второй вариант сохраняется в переменной и обрабатывается точно так же, как и классическая форма представления.

Числа с плавающей точкой – это значит, что переменная будет иметь тип double по умолчанию. Можно задействовать float. Для этого в конце строки необходимо поставить f или F:

Все о литералах в вопросах разработки

А вот – пример в C#:

Все о литералах в вопросах разработки

Рассматривая типы существующих литералов, нужно запомнить – в Java нельзя создать литерал-объект. К такому элементу имеет отношение только null.

Строковый вариант

Следующий вариант – это строковый literal. По названию становится ясно – он представляет собой какую-то запись. Строковый литерал – это набор символов, заключенных в двойные кавычки в программном коде. Является достаточно распространенным типом. Он применяется на практике так же часто, как и числовой. Строковый literal может включать в себя служебные символы, которые требуется экранировать (escape-последовательности).

Строковый литерал – это самая обычная строка с заданной записью. Не функция и не команда. Служит для того, чтобы использовать в программном коде тот или иной текст:

Все о литералах в вопросах разработки Все о литералах в вопросах разработки

Если внутри заданной строки нужно отобразить двойную кавычку, ее в C# необходимо предварить обратным слешем. В соответствующем типе поддерживается использование управляющих последовательностей.

Символьные

Символьные литералы в Java представлены кодовыми таблицами Unicode. Каждый символ – это 16-бит. Символьный literal обозначается при помощи одинарных кавычек.

Существуют два вида символьных записей:

  1. Обычный вариант. Это то, что можно ввести непосредственно с клавиатуры.
  2. Специальный. Символы, которые не получится напечатать на клавиатуре.

Первый вариант можно указать явно. Если в коде используется служебный символ, нужно экранировать его при помощи обратного слеша. Когда нужно, чтобы в консоли появилась функция (константа), рекомендуется использование строкового типа. Это никакой не магический прием, а информация, о которой должен знать каждый разработчик.

Символы, которые нельзя задать в консоли «по умолчанию», допускается использовать в 16-битовом коде. Для этого он указывается с префиксом \u. В восьмеричном стиле задействован обратный слеш.

Все о литералах в вопросах разработки Все о литералах в вопросах разработки

В C# среди использующихся типов литералов отдельно выделяют управляющие последовательности. Если компилятор их встречает, то он воспринимает «команду» как существующую, а не как запись «слеш + буква». Шестнадцатеричный код тоже заключается в одинарные кавычки.

Логические

В ЯП существуют различные типы так называемых литералов, составляющие значимую часть кода. Последний распространенный вариант – это логическая разновидность. Принимает всего 2 значения – «истина» и «ложь». Это – «магический» тип, который позволяет работать с переменными вида boolean.

Используется для обозначения констант true и false в приложении:

Все о литералах в вопросах разработки Все о литералах в вопросах разработки

Использовать соответствующий компонент в блоках с if можно, но такой вариант является моветоном.

Отдельно стоит отметить «магический» тип – null. Это ссылка, которая не указывает ни на один объект. Представлено пустым значением.

Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в Otus !

Литерал (информатика)

Литерал (англ. literal — константа) — запись в исходном коде компьютерной программы, представляющая собой фиксированное значение [1] .

Описание

Литералы представляют собой константы, непосредственно включаемые в текст программы в отличие от прочих данных — констант и переменных, обращение к которым осуществляется посредством ссылок [1] . Литералы не могут быть изменены в тексте программы.

В следующем примере 1 и Кот это литералы, а a1, c и cat — переменные:

int a1=1; int c=a1; string cat="Кот";

Литерал в языке Python — это выражение, создающее объект.

Типы литералов

Почти все языки программирования допускают использование литералов элементарных типов. Однако, использование различных типов литералов, а также их запись в программах отличается.

Обычно выделяют следующие элементарные типы литералов:

Числовые литералы — литералы, для записи чисел. Иногда, числовые литералы детализируются целые литералы, дробные литералы, с различной точностью представления и записанные в различной системе счисления (например, битовые литералы в PL/I). Обычно, в программах числовые литералы записываются непосредственно числом. В следующем примере 100 и 3.1415 — числовые литералы:

int a=100; float b=3.1415;

Строковые литералы, обычно, представляют собой строку символов, заключённую в кавычки или скобки. Иногда выделяют, также, символьные литералы, включающие один символ. В разных языках программирования допускаются различные типы кавычек. Например, в следующем примере на языке JavaScript один и два — строковые литералы записанные с использованием различных допустимых типов кавычек:

var one="один"; var two='два';

Логические литералы, Логические значения — два литерала: true и false или их аналоги — T, t, Y, y, F, f, N, n, NIL и т. п.. Например:

bool t=true; bool f=false;

Литерал ссылочного типа, адрес в памяти — обычно, числовые литералы, указывающие на ячейку в памяти.

Null-литерал, Пустое значение — особый тип литерала, в зависимости от языка программирования, относящийся к ссылочному либо объектному типу. Единственное допустимое значение этого типа литералов null, или аналог, например NIL, None, Nothing — ссылка никуда не ведёт либо объект отсутствует.

T o=null;

Регулярные выражения. В некоторых языках программирования регулярные выражения представляют собой литерал особого типа для поиска по шаблону [2] . Например:

/javascript/gi

В некоторых объектно ориентированных языках программирования (например, ECMAScript v3) допускается использовать выражения, которые служат массивами-литералами и объектами-литералами [2] . Например:

[1,2,3,4,5] // Инициализатор массива // Инициализатор объекта

Иногда анонимные функции относят к литералам-функциям, а анонимные объекты к литералам-объектам.

Примечания

  1. 12 Статья literal в Энциклопедии PC Magazine
  2. 12 Флэнаган Д. JavaScript. Подробное руководство. — Пер. с англ. — СПб: Символ-Плюс, 2008. — 992 с., ил.

Ссылки

  • Literals (англ.)

Числовые, логические литералы и литералы-указатели

Литерал — это элемент программы, который непосредственно представляет значение. В этой статье рассматриваются литералы целочисленного типа, с плавающей запятой, логическое значение и указатель. Сведения о строковых и символьных литералах см. в разделе «Строковые и символьные литералы» (C++). Вы также можете определить собственные литералы на основе любой из этих категорий. Дополнительные сведения см. в разделе «Определяемые пользователем литералы» (C++).

Литералы можно использовать во многих контекстах, но наиболее часто они используются для инициализации именованных переменных и для передачи аргументов в функции.

const int answer = 42; // integer literal double d = sin(108.87); // floating point literal passed to sin function bool b = true; // boolean literal MyClass* mc = nullptr; // pointer literal 

Иногда важно указывать компилятору, как следует обрабатывать литерал или какой конкретный тип ему предоставить. Это делается путем добавления префиксов или суффиксов к литералу. Например, префикс 0x сообщает компилятору интерпретировать число, которое следует за ним как шестнадцатеричное значение, например 0x35 . Суффикс ULL сообщает компилятору рассматривать значение как unsigned long long тип, как в 5894345ULL . Полный список префиксов и суффиксов для каждого типа литерала см. в следующих разделах.

Целочисленные литералы

Целочисленные литералы начинаются с цифры и не имеют дробных частей или экспонент. Целочисленные литералы можно указать в десятичной, двоичной, восьмеричной или шестнадцатеричной форме. При необходимости можно указать целый литерал без знака, а также длинный или длинный тип с помощью суффикса.

Если префикс или суффикс отсутствует, компилятор даст целочисленному литеральному типу (32 бита), если значение будет соответствовать, в противном случае он даст ему тип int long long (64 бита).

Чтобы указать десятичный целочисленный литерал, начинайте спецификацию с любой цифры, кроме нуля. Например:

int i = 157; // Decimal literal int j = 0198; // Not a decimal number; erroneous octal literal int k = 0365; // Leading zero specifies octal literal, not decimal int m = 36'000'000 // digit separators make large values more readable 

Чтобы указать восьмеричный целочисленный литерал, начинайте спецификацию с нуля, за которым следует ряд цифр в диапазоне от 0 до 7. Цифры 8 и 9 при указании восьмеричного литерала будут ошибками. Например:

int i = 0377; // Octal literal int j = 0397; // Error: 9 is not an octal digit 

Чтобы указать шестнадцатеричный целочисленный литерал, начните спецификацию с 0x или (в случае «x» не имеет значения), за которой следует последовательность цифр в диапазоне 0 и a 9 (или) через f (или F A 0X ). Шестнадцатеричные цифры от a (или A ) до f (или F ) представляют собой значения в диапазоне от 10 до 15. Например:

int i = 0x3fff; // Hexadecimal literal int j = 0X3FFF; // Equal to i 

Чтобы указать неподписанный тип, используйте u или U суффикс. Чтобы указать длинный тип, используйте l либо суффикс L . Для указания 64-разрядного целочисленного типа используется суффикс LL или ll. Суффикс i64 по-прежнему поддерживается, но мы не рекомендуем его. Он зависит от Корпорации Майкрософт и не переносим. Например:

unsigned val_1 = 328u; // Unsigned value long val_2 = 0x7FFFFFL; // Long value specified // as hex literal unsigned long val_3 = 0776745ul; // Unsigned long value auto val_4 = 108LL; // signed long long auto val_4 = 0x8000000000000000ULL  

Разделители цифр: вы можете использовать символ с одним кавычками (apostrophe) для разделения значений в больших числах, чтобы упростить чтение для людей. Разделители не влияют на компиляцию.

long long i = 24'847'458'121; 

Литералы с плавающей запятой

Литералы с плавающей запятой задают значения, которые должны иметь дробную часть. Эти значения содержат десятичные знаки ( . ) и могут содержать экспоненты.

Литералы с плавающей запятой имеют символику (иногда называемую мантиссой), которая задает значение числа. Они имеют экспонент, который указывает величину числа. И у них есть необязательный суффикс, указывающий тип литерала. Знак указывается в виде последовательности цифр, за которым следует период, за которым следует необязательная последовательность цифр, представляющая дробную часть числа. Например:

18.46 38. 

Если указан показатель степени, он задает порядок числа в виде степени 10, как показано в следующем примере:

18.46e0 // 18.46 18.46e1 // 184.6 

Экспонент может быть указан с помощью e или E , которые имеют то же значение, за которым следует необязательный знак (+ или -) и последовательность цифр. Если указан показатель степени, десятичная точка в конце целых чисел не требуется, например 18E0 .

Литералы с плавающей запятой по умолчанию для типа double . Используя суффиксы f или или F l L (суффикс не учитывает регистр), литерал можно указать как float или. long double

Хотя long double и double имеют то же представление, они не одинаковы. Например, у вас могут быть перегруженные функции, такие как

void func( double ); 
void func( long double ); 

логические литералы

Логические литералы и true false .

Литерал-указатель (C++11)

C++ вводит nullptr литерал для указания указателя с нулевой инициализацией. В переносимом коде nullptr следует использовать вместо целочисленного нуля или макросов, таких как NULL .

Двоичные литералы (C++14)

Двоичный литерал можно задать с помощью префикса 0B или 0b и последовательности, состоящей из 1 и 0:

auto x = 0B001101 ; // int auto y = 0b000001 ; // int 

Избегайте использования литералов как «магических констант»

Несмотря на то что это не всегда является хорошим стилем программирования, можно использовать литералы непосредственно в выражениях и операторах:

if (num < 100) return "Success"; 

В предыдущем примере рекомендуется использовать именованную константу, которая передает четкое значение, например "MAXIMUM_ERROR_THRESHOLD". И если возвращаемое значение "Success" отображается конечными пользователями, возможно, лучше использовать именованную константу строки. Строковые константы можно хранить в одном расположении в файле, который можно локализовать на других языках. Использование именованных констант помогает и себе, и другим пользователям понять намерение кода.

Что такое литералы? [дубликат]

Потому что в программировании константа - это переменная с фиксированнным значением.

В то же время и само значение такой переменной - это в общем-то тоже константа .

Видимо, поэтому, чтобы избежать неоднозначности толкования - о чём же мы всё-таки говорим, когда в программировании произносим термин константа - ввели термин литерал .

Поэтому в программировании обычно понимают так:

  • константа - это переменная, содержащая фиксированное значение (нонсенс, если подумать - "переменная" и в то же время "фиксированная", но так сложилось)
  • литерал - это само фиксированное значение, которое присваивается переменной-константе или ещё каким-то образом используется в программе (в общем-то не обязательно его куда-то присваивать)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *