Lập trình chức năng - Kiểu dữ liệu

Kiểu dữ liệu xác định kiểu giá trị mà một đối tượng có thể có và những thao tác nào có thể được thực hiện trên nó. Một kiểu dữ liệu nên được khai báo trước khi được sử dụng. Các ngôn ngữ lập trình khác nhau hỗ trợ các kiểu dữ liệu khác nhau. Ví dụ,

  • C hỗ trợ char, int, float, long, v.v.
  • Python hỗ trợ Chuỗi, Danh sách, Tuple, v.v.

Theo nghĩa rộng, có ba loại kiểu dữ liệu -

  • Fundamental data types- Đây là các kiểu dữ liệu xác định trước được người lập trình sử dụng trực tiếp để lưu trữ chỉ một giá trị theo yêu cầu, tức là kiểu số nguyên, kiểu ký tự hoặc kiểu động. Ví dụ - int, char, float, v.v.

  • Derived data types- Các kiểu dữ liệu này được tạo ra bằng cách sử dụng kiểu dữ liệu tích hợp được lập trình viên thiết kế để lưu trữ nhiều giá trị cùng kiểu theo yêu cầu của chúng. Ví dụ - Mảng, Con trỏ, hàm, danh sách, v.v.

  • User-defined data types- Các kiểu dữ liệu này được tạo ra bằng cách sử dụng các kiểu dữ liệu tích hợp được bao bọc thành một kiểu dữ liệu duy nhất để lưu trữ nhiều giá trị cùng loại hoặc khác kiểu hoặc cả hai theo yêu cầu. Ví dụ - Lớp, Cấu trúc, v.v.

Các kiểu dữ liệu được hỗ trợ bởi C ++

Bảng sau liệt kê các kiểu dữ liệu được hỗ trợ bởi C ++:

Loại dữ liệu Kích thước Phạm vi
char 1 byte -128 đến 127 hoặc 0 đến 255
ký tự không dấu 1 byte 0 đến 255
ký char 1 byte -128 đến 127
int 4 byte -2147483648 đến 2147483647
int không dấu 4 byte 0 đến 4294967295
int đã ký 4 byte -2147483648 đến 2147483647
int ngắn 2 byte -32768 đến 32767
int ngắn không dấu 2 byte 0 đến 65,535
ký số nguyên ngắn 2 byte -32768 đến 32767
int dài 4 byte -2.147.483.648 đến 2.147.483.647
ký dài hạn 4 byte -2.147.483.648 đến 2.147.483.647
int dài không ký 4 byte 0 đến 4,294,967,295
Phao nổi 4 byte +/- 3.4e +/- 38 (~ 7 chữ số)
gấp đôi 8 byte +/- 1.7e +/- 308 (~ 15 chữ số)
dài đôi 8 byte +/- 1.7e +/- 308 (~ 15 chữ số)

Các kiểu dữ liệu được Java hỗ trợ

Các kiểu dữ liệu sau được Java hỗ trợ:

Loại dữ liệu Kích thước Phạm vi
byte 1 byte -128 đến 127
char 2 byte 0 đến 65,536
ngắn 2 byte -32,7688 đến 32,767
int 4 byte -2.147.483.648 đến 2.147.483.647
Dài 8 byte -9,223,372,036,854,775,808 đến 9,223,372,036,854,775,807
Phao nổi 4 byte -2147483648 đến 2147483647
gấp đôi 8 byte + 9.223 * 1018
Boolean 1 chút Đúng hay sai

Các loại dữ liệu được hỗ trợ bởi Erlang

Trong phần này, chúng ta sẽ thảo luận về các kiểu dữ liệu được hỗ trợ bởi Erlang, là một ngôn ngữ lập trình chức năng.

Con số

Erlang hỗ trợ hai loại chữ số, tức là integerfloat. Hãy xem ví dụ sau cho biết cách thêm hai giá trị số nguyên:

-module(helloworld).
-export([start/0]). 
start() -> 
   io:fwrite("~w",[5+4]).

Nó sẽ tạo ra sản lượng sau:

9

Atom

An atomlà một chuỗi có giá trị không thể thay đổi. Nó phải bắt đầu bằng một chữ cái thường và có thể chứa bất kỳ ký tự chữ và số và ký tự đặc biệt nào. Khi một nguyên tử chứa các ký tự đặc biệt, thì nó phải được đặt bên trong dấu nháy đơn ('). Hãy xem ví dụ sau để hiểu rõ hơn.

-module(helloworld). 
-export([start/0]). 

start()-> 
   io:fwrite(monday).

Nó sẽ tạo ra kết quả sau:

monday

Note- Hãy thử thay đổi nguyên tử thành "Thứ hai" với chữ "M" viết hoa. Chương trình sẽ tạo ra một lỗi.

Boolean

Kiểu dữ liệu này được sử dụng để hiển thị kết quả true hoặc là false. Hãy xem ví dụ sau. Nó chỉ ra cách so sánh hai số nguyên.

-module(helloworld). 
-export([start/0]). 

start() -> 
   io:fwrite(5 =< 9).

Nó sẽ tạo ra kết quả sau:

true

Chuỗi bit

Một chuỗi bit được sử dụng để lưu trữ một vùng của bộ nhớ chưa được nhập. Hãy xem ví dụ sau. Nó chỉ ra cách chuyển đổi 2 bit của một chuỗi bit thành một danh sách.

-module(helloworld). 
-export([start/0]). 

start() -> 
   Bin2 = <<15,25>>, 
   P = binary_to_list(Bin2), 
   io:fwrite("~w",[P]).

Nó sẽ tạo ra kết quả sau:

[15,25]

Tuple

Tuple là một kiểu dữ liệu phức hợp có số hạng cố định. Mỗi thuật ngữ của một tuple được gọi là mộtelement. Số phần tử là kích thước của bộ tuple. Ví dụ sau đây cho thấy cách xác định một bộ 5 thuật ngữ và in kích thước của nó.

-module(helloworld).  
-export([start/0]).  

start() ->  
   K = {abc,50,pqr,60,{xyz,75}} ,  
   io:fwrite("~w",[tuple_size(K)]).

Nó sẽ tạo ra kết quả sau:

5

Bản đồ

Bản đồ là một kiểu dữ liệu kết hợp với một số lượng biến các liên kết khóa-giá trị. Mỗi liên kết khóa-giá trị trong bản đồ được gọi làassociation-pair. Cáckeyvalue các bộ phận của cặp được gọi là elements. Số lượng cặp kết hợp được cho là kích thước của bản đồ. Ví dụ sau đây cho thấy cách xác định một bản đồ gồm 3 ánh xạ và in kích thước của nó.

-module(helloworld).  
-export([start/0]).  
 
start() ->  
   Map1 = #{name => 'abc',age => 40, gender => 'M'},  
   io:fwrite("~w",[map_size(Map1)]).

Nó sẽ tạo ra kết quả sau:

3

Danh sách

Danh sách là một kiểu dữ liệu phức hợp có số hạng thay đổi. Mỗi thuật ngữ trong danh sách được gọi là một phần tử. Số phần tử được cho là độ dài của danh sách. Ví dụ sau đây cho thấy cách xác định danh sách 5 mục và in kích thước của nó.

-module(helloworld).  
-export([start/0]).  

start() ->  
   List1 = [10,15,20,25,30] ,  
   io:fwrite("~w",[length(List1)]).

Nó sẽ tạo ra kết quả sau:

5

Note - Kiểu dữ liệu 'chuỗi' không được định nghĩa trong Erlang.