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à integer và float. 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áckey và value 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.