Функциональное программирование - типы данных

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

  • 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.