Erlang - Loại dữ liệu

Trong bất kỳ ngôn ngữ lập trình nào, bạn cần sử dụng một số biến để lưu trữ các loại thông tin khác nhau. Các biến không là gì ngoài các vị trí bộ nhớ dành riêng để lưu trữ các giá trị. Điều này có nghĩa là khi bạn tạo một biến, bạn dành một số không gian trong bộ nhớ để lưu giá trị được liên kết với biến đó.

Bạn có thể muốn lưu trữ thông tin của nhiều kiểu dữ liệu khác nhau như chuỗi, ký tự, ký tự rộng, số nguyên, dấu phẩy động, Boolean, v.v. Dựa trên kiểu dữ liệu của một biến, hệ điều hành phân bổ bộ nhớ và quyết định những gì có thể được lưu trữ trong ký ức.

Các loại dữ liệu tích hợp

Erlang cung cấp nhiều loại dữ liệu tích hợp sẵn. Sau đây là danh sách các kiểu dữ liệu được định nghĩa trong Erlang:

  • Number - Trong Erlang, có 2 loại chữ số là số nguyên và số float.

  • Atom- Một nguyên tử là một chữ, một hằng số có tên. Một nguyên tử phải được đặt trong dấu ngoặc đơn (') nếu nó không bắt đầu bằng chữ thường hoặc nếu nó chứa các ký tự khác ngoài ký tự chữ và số, dấu gạch dưới (_) hoặc @.

  • Boolean - Kiểu dữ liệu Boolean trong Erlang là hai nguyên tử dành riêng: true và false.

  • Bit String - Một chuỗi bit được sử dụng để lưu trữ một vùng bộ nhớ chưa được đánh máy.

  • Tuple- Tuple là kiểu dữ liệu ghép với số hạng cố định. Mỗi Thuật ngữ trong bộ được gọi là một phần tử. Số phần tử được cho là kích thước của bộ tuple.

  • Map- Bản đồ là một kiểu dữ liệu phức hợp với một số lượng các liên kết khóa-giá trị thay đổi. Mỗi liên kết khóa-giá trị trong bản đồ được gọi là một cặp liên kết. Các phần chính và giá trị của cặp được gọi là phần tử. Số lượng các cặp kết hợp được cho là kích thước của bản đồ.

  • List- Danh sách là kiểu dữ liệu ghép với 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.

Note- Bạn sẽ ngạc nhiên khi thấy rằng bạn không thể nhìn thấy kiểu Chuỗi ở bất kỳ đâu trong danh sách trên. Đó là bởi vì không có kiểu dữ liệu chuỗi được xác định độc quyền trong Erlang. Nhưng chúng ta sẽ xem cách chúng ta có thể làm việc với chuỗi trong chương tiếp theo.

Sau đây là các ví dụ về cách sử dụng từng kiểu dữ liệu. Một lần nữa, mỗi kiểu dữ liệu sẽ được thảo luận chi tiết trong các chương tiếp theo. Đây chỉ là để bạn làm quen với mô tả ngắn gọn về các kiểu dữ liệu được đề cập ở trên.

Con số

Ví dụ về cách sử dụng kiểu dữ liệu số được hiển thị trong chương trình sau. Chương trình này hiển thị phép cộng 2 số nguyên.

Example

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

start() ->
   io:fwrite("~w",[1+1]).

Đầu ra của chương trình trên sẽ là:

Output

2

Atom

Nguyên tử phải bắt đầu bằng một chữ cái viết thường và có thể chứa các ký tự viết thường và viết hoa, chữ số, dấu gạch dưới (_) và dấu hiệu "tại" (@). Chúng ta cũng có thể đặt một nguyên tử trong dấu ngoặc kép.

Ví dụ về cách sử dụng kiểu dữ liệu nguyên tử được trình bày trong chương trình sau. Trong chương trình này, chúng ta đang tạo ra một nguyên tử được gọi là atom1.

Example

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

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

Đầu ra của chương trình trên sẽ là:

Output

atom1

Boolean

Ví dụ về cách sử dụng kiểu dữ liệu Boolean được hiển thị trong chương trình sau. Ví dụ này thực hiện so sánh giữa 2 số nguyên và in kết quả Boolean ra bảng điều khiển.

Example

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

start() ->
   io:fwrite(2 =< 3).

Đầu ra của chương trình trên sẽ là:

Output

true

Chuỗi bit

Ví dụ về cách sử dụng kiểu dữ liệu Chuỗi Bit được trình bày trong chương trình sau. Chương trình này định nghĩa một Chuỗi bit bao gồm 2 bit. Cácbinary_to_list là một hàm có sẵn được định nghĩa trong Erlang có thể được sử dụng để chuyển đổi một Chuỗi Bit thành một danh sách.

Example

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

start() ->
   Bin1 = <<10,20>>,
   X = binary_to_list(Bin1),
   io:fwrite("~w",[X]).

Đầu ra của chương trình trên sẽ là:

Output

[10,20]

Tuple

Ví dụ về cách sử dụng kiểu dữ liệu Tuple được trình bày trong chương trình sau.

Ở đây chúng tôi đang xác định một Tuple Ptrong đó có 3 điều khoản. Cáctuple_size là một hàm có sẵn được định nghĩa trong Erlang, có thể được sử dụng để xác định kích thước của tuple.

Example

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

start() -> 
   P = {john,24,{june,25}} , 
   io:fwrite("~w",[tuple_size(P)]).

Đầu ra của chương trình trên sẽ là:

Output

3

Bản đồ

Ví dụ về cách sử dụng kiểu dữ liệu Bản đồ được trình bày trong chương trình sau.

Ở đây chúng tôi đang xác định một Map M1trong đó có 2 ánh xạ. Cácmap_size là một hàm có sẵn được định nghĩa trong Erlang, có thể được sử dụng để xác định kích thước của bản đồ.

Example

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

start() -> 
   M1 = #{name=>john,age=>25}, 
   io:fwrite("~w",[map_size(M1)]).

Đầu ra của chương trình trên sẽ là:

Output

2

Danh sách

Ví dụ về cách sử dụng kiểu dữ liệu Danh sách được hiển thị trong chương trình sau.

Ở đây chúng tôi đang xác định một List Ltrong đó có 3 mục. Độ dài là một hàm có sẵn được định nghĩa trong Erlang, hàm này có thể được sử dụng để xác định kích thước của danh sách.

Example

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

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

Đầu ra của chương trình trên sẽ là:

Output

3