Функциональное программирование - типы данных
Тип данных определяет тип значения, которое может иметь объект, и какие операции могут выполняться с ним. Тип данных должен быть объявлен перед использованием. Разные языки программирования поддерживают разные типы данных. Например,
- C поддерживает char, int, float, long и т. Д.
- Python поддерживает String, List, Tuple и т. Д.
В широком смысле существует три типа данных:
Fundamental data types- Это предопределенные типы данных, которые используются программистом напрямую для хранения только одного значения в соответствии с требованиями, т. Е. Целочисленного типа, символьного типа или плавающего типа. Например - int, char, float и т. Д.
Derived data types- Эти типы данных получены с использованием встроенного типа данных, разработанного программистом для хранения нескольких значений одного типа в соответствии с их требованиями. Например - массив, указатель, функция, список и т. Д.
User-defined data types- Эти типы данных получены с использованием встроенных типов данных, которые объединены в один тип данных a для хранения нескольких значений одного или другого типа или обоих в соответствии с требованиями. Например - Класс, Структура и т. Д.
Типы данных, поддерживаемые C ++
В следующей таблице перечислены типы данных, поддерживаемые C ++ -
Тип данных | Размер | Спектр |
---|---|---|
char | 1 байт | От -128 до 127 или от 0 до 255 |
беззнаковый символ | 1 байт | От 0 до 255 |
подписанный символ | 1 байт | От -128 до 127 |
int | 4 байта | От -2147483648 до 2147483647 |
беззнаковое целое | 4 байта | 0 на 4294967295 |
подписанный int | 4 байта | От -2147483648 до 2147483647 |
короткий int | 2 байта | От -32768 до 32767 |
беззнаковый короткий int | 2 байта | От 0 до 65 535 |
подписанный короткий int | 2 байта | От -32768 до 32767 |
длинный интервал | 4 байта | От -2 147 483 648 до 2 147 483 647 |
подписанный длинный int | 4 байта | От -2 147 483 648 до 2 147 483 647 |
беззнаковый длинный int | 4 байта | От 0 до 4 294 967 295 |
плавать | 4 байта | +/- 3,4e +/- 38 (~ 7 цифр) |
двойной | 8 байт | +/- 1,7e +/- 308 (~ 15 цифр) |
длинный двойной | 8 байт | +/- 1,7e +/- 308 (~ 15 цифр) |
Типы данных, поддерживаемые Java
Java поддерживает следующие типы данных:
Тип данных | Размер | Спектр |
---|---|---|
байт | 1 байт | От -128 до 127 |
char | 2 байта | От 0 до 65 536 |
короткая | 2 байта | От -32 7688 до 32 767 |
int | 4 байта | От -2 147 483 648 до 2 147 483 647 |
долго | 8 байт | -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807 |
плавать | 4 байта | От -2147483648 до 2147483647 |
двойной | 8 байт | + 9,223 * 1018 |
Булево | 1 бит | Правда или ложь |
Типы данных, поддерживаемые Erlang
В этом разделе мы обсудим типы данных, поддерживаемые Erlang, который является языком функционального программирования.
номер
Erlang поддерживает два типа числовых литералов, т.е. integer и float. Взгляните на следующий пример, который показывает, как сложить два целочисленных значения:
-module(helloworld).
-export([start/0]).
start() ->
io:fwrite("~w",[5+4]).
Он выдаст следующий результат -
9
Атом
An atom- строка, значение которой нельзя изменить. Он должен начинаться со строчной буквы и может содержать любые буквенно-цифровые символы и специальные символы. Когда атом содержит специальные символы, его следует заключить в одинарные кавычки ('). Взгляните на следующий пример, чтобы лучше понять.
-module(helloworld).
-export([start/0]).
start()->
io:fwrite(monday).
Он выдаст следующий результат -
monday
Note- Попробуйте изменить атом на «Понедельник» с большой буквы. Программа выдаст ошибку.
Булево
Этот тип данных используется для отображения результата как true или же false. Взгляните на следующий пример. Он показывает, как сравнить два целых числа.
-module(helloworld).
-export([start/0]).
start() ->
io:fwrite(5 =< 9).
Он выдаст следующий результат -
true
Битовая строка
Битовая строка используется для хранения области нетипизированной памяти. Взгляните на следующий пример. Он показывает, как преобразовать 2 бита битовой строки в список.
-module(helloworld).
-export([start/0]).
start() ->
Bin2 = <<15,25>>,
P = binary_to_list(Bin2),
io:fwrite("~w",[P]).
Он выдаст следующий результат -
[15,25]
Кортеж
Кортеж - это составной тип данных, имеющий фиксированное количество терминов. Каждый член кортежа известен какelement. Количество элементов - это размер кортежа. В следующем примере показано, как определить кортеж из 5 терминов и распечатать его размер.
-module(helloworld).
-export([start/0]).
start() ->
K = {abc,50,pqr,60,{xyz,75}} ,
io:fwrite("~w",[tuple_size(K)]).
Он выдаст следующий результат -
5
карта
Карта - это составной тип данных с переменным количеством ассоциаций "ключ-значение". Каждая ассоциация "ключ-значение" на карте называетсяassociation-pair. Вkey и value части пары называются elements. Количество ассоциативных пар называется размером карты. В следующем примере показано, как определить карту из 3 сопоставлений и распечатать ее размер.
-module(helloworld).
-export([start/0]).
start() ->
Map1 = #{name => 'abc',age => 40, gender => 'M'},
io:fwrite("~w",[map_size(Map1)]).
Он выдаст следующий результат -
3
Список
Список - это составной тип данных с переменным числом терминов. Каждый термин в списке называется элементом. Количество элементов называется длиной списка. В следующем примере показано, как определить список из 5 элементов и распечатать его размер.
-module(helloworld).
-export([start/0]).
start() ->
List1 = [10,15,20,25,30] ,
io:fwrite("~w",[length(List1)]).
Он выдаст следующий результат -
5
Note - Тип данных String не определен в Erlang.