Литерал
В информатиката под литерал (на английски: literal) се разбира константна стойност на променлива, зададена в сорс кода на дадена компютърна програма.[1] За разлика от променливите, които при изпълнението на програмата могат да придобиват различни стойности, и константите, които имат постоянна стойност, литералът представлява самата стойност, поради което понякога ги наричат още и константи.[2]
В следващия пример, написан на Java, 1 и cat са литерали, а num и str – променливи:
int num=1;
String str="cat";
Видове литерали
[редактиране | редактиране на кода]Съществуват различни видове литерали: булеви, целочислени, реални, символни, низови и обектни.
Булеви
[редактиране | редактиране на кода]Булевите литерали, наричани още логически литерали, могат да бъдат true („истина“) или false („лъжа“). При присвояване на стойност на една променлива от булев тип е възможно да се използва единствено една от тези две стойности или израз от булев тип, който се изчислява впоследствие до една от тези две стойности.
Пример на C#:
bool t = true; //ако t е „истина“
bool f = false; //ако f е „лъжа“
Целочислени
[редактиране | редактиране на кода]Целочислените литерали са съставени от поредица от цифри, евентуално предшествани от унарния знак + или -, представки и окончания. Благодарение на представките целите числа могат да бъдат представени в десетичен или шестнадесетичен формат. Този вид литерали се използва за дефиниране на променливи от тип int, uint, long, и ulong.
- Представка: 0x (0X) – използва се за представяне на едно число в шестнадесетичен формат.
- Окончания:
- l (L) – за данни от тип long
- u (U) – за данни от тип uint, ulong
Когато не е използвано никакво окончание целочислените литерали са по подразбиране от тип int.
Пример на C#:
int num1 = 59; //представяне на числото 59 в десетичен формат
int num2 = 0x3B; //представяне на числото 59 в шестнадесетичен формат
long num3 = 120L; //дефиниране на променлива от тип long
ulong num4 = 30u; //дефиниране на променлива от тип ulong
Пример на PHP:
$x = 5;
Реални
[редактиране | редактиране на кода]Реалните литерали се използват за дефиниране на променливи от тип float, double и decimal, и представляват комбинация от цифри, евентуално предшествани от унарния знак + или -, символа за десетична запетая и окончания. Последните могат да бъдат:
- f (F) – за данни от тип float
- d (D) – за данни от тип double
- m (M) – за данни от тип decimal
- e (E) – за представяне на трите типа данни в експоненциален формат
Когато не е използвано никакво окончание реалните литерали са по подразбиране от тип double.
Пример на C#:
float num1 = 347.5f; //задаване на числото 347,5
float num2 = 0.3475e+3f; //задаване на числото 347,5 в експоненциален формат
decimal num3 = -74.9m; //дефиниране на променлива от тип decimal
Символни
[редактиране | редактиране на кода]Символният литерал е единичен символ ограден в единични кавички. Стойностите, които се задават чрез този вид литерали са от тип char, и могат да бъдат:
- единичен символ: 'J', '@', '☯', и пр.
- екранираща последователност (escape sequence) от символи, чрез която се задава друг специален символ. Последната започва винаги с т. нар. „екраниращ символ“ – \.
Пример на C#:
char sym1 = 'm'; //задаване на единичен символен литерал
char sym2 = '\u00A9' //символът ©, зададен чрез неговия уникод
char sym3 = '\n'; //задаване на символ за нов ред
char sym4 = '\"'; //задаване на символ за двойни кавички
Низови
[редактиране | редактиране на кода]Низовият литерал представлява последователност от символи оградени в кавички. В езика C, стойностите, които се задават чрез този вид литерали са от тип string, и могат да бъдат:
- единичен или няколко символа
- екранираща последователност от символи, при която се прилагат същите правила, каквито са и при символните литералите.
- цитиран низ, предхождан от символа @, при който правилата за екраниране при символните литералите не важат. Единствено двойната кавичка " може да се екранира с две двойни кавички "", а всички останали символи, включително и новият ред, се възприемат буквално.
В други езици за програмиране, като например JavaScript, е допустимо използването на различни видове кавички.
Пример на C#:
//Задаване на низов литерал с резултат: "Hello, World!"
string quote1 = "\"Hello, World!\"";
Console.WriteLine(quote1);
//Задаване на цитиран низ с резултат: Hello!
//This is a new line.
string quote2 = @"Hello!
This is a new line.";
Console.WriteLine(quote2);
Пример на JavaScript:
var one="едно";
var two='две';
Пример на PHP:
$x = "tekst";
const text = 'Hello, World!';
Вижте също
[редактиране | редактиране на кода]Външни препратки
[редактиране | редактиране на кода]- Literals // Gavilan College. (на английски) History and use of literals in programming languages
Източници
[редактиране | редактиране на кода]- ↑ Статья в Энциклопедии PC Magazine // www.pcmag.ru. Посетен на 3.9.2013. (на руски)
- ↑ Van Tassel, Dennie. Literals // Gavilan College, 2004. Посетен на 18 юли 2013. (на английски)
- ↑ Iglewski, Michał. Pascal. Język wzorcowy – Pascal 360. Warszawa, Wydawnictwa Naukowo-Techniczne, 1984. ISBN 83-85060-53-7. (на полски)
- ↑ Marciniak, Andrzej. Borland Pascal 7.0. Poznań, Nakom, 1994. ISBN 83-85060-53-7. (на полски)
Литература
[редактиране | редактиране на кода]- Наков, С. Въведение в програмирането със C#: Глава 2. Примитивни типове и променливи. В. Търново, Фабер, 2011. ISBN 978-954-400-527-6. с. 136.
- Marcotty, Michael. W kręgu języków programowania. Warszawa, Wydawnictwa Naukowo-Techniczne, 1980. ISBN 83-204-1342-7. (на полски)
- Nicholls, John E. Struktura języków programowania. Warszawa, Wydawnictwa Naukowo-Techniczne, 1980. ISBN 83-204-0246-8. (на полски)