Erlang - Biến
Trong Erlang, tất cả các biến được ràng buộc với câu lệnh '='. Tất cả các biến cần bắt đầu bằng ký tự viết hoa. Trong các ngôn ngữ lập trình khác, dấu '=' được sử dụng cho phép gán, nhưng không phải trong trường hợp của Erlang. Như đã nêu, các biến được định nghĩa bằng cách sử dụng câu lệnh '='.
Một điều quan trọng cần lưu ý trong Erlang là các biến là bất biến, có nghĩa là để giá trị của biến thay đổi, nó cần phải bị hủy và tạo lại một lần nữa.
Các biến cơ bản sau trong Erlang được giải thích trong chương cuối:
Numbers- Điều này được sử dụng để biểu diễn một số nguyên hoặc một số thực. Một ví dụ là 10.
Boolean - Giá trị này đại diện cho một giá trị Boolean có thể đúng hoặc sai.
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. Một ví dụ là << 40,50 >>.
Tuple- Tuple là kiểu dữ liệu ghép với số hạng cố định. Một ví dụ là {40,50}.
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. Ví dụ là {type => person, age => 25}.
List- Danh sách là kiểu dữ liệu ghép với số hạng thay đổi. Một ví dụ là [40,40].
Khai báo biến
Cú pháp chung của việc xác định một biến như sau:
Cú pháp
var-name = var-value
Ở đâu,
var-name - Đây là tên của biến.
var-value - Đây là giá trị liên kết với biến.
Sau đây là một ví dụ về khai báo biến:
Thí dụ
-module(helloworld).
-export([start/0]).
start() ->
X = 40,
Y = 50,
Result = X + Y,
io:fwrite("~w",[Result]).
Trong ví dụ trên, chúng ta có 2 biến, một là X được ràng buộc với giá trị 40 và tiếp theo là Y được ràng buộc với giá trị 50. Một biến khác có tên là Kết quả được ràng buộc với phép cộng X và Y.
Đầu ra của chương trình trên sẽ là:
Đầu ra
90
Đặt tên biến
Như đã thảo luận, tên biến phải bắt đầu bằng chữ hoa. Hãy lấy một ví dụ về một biến được khai báo bằng chữ thường.
Thí dụ
-module(helloworld).
-export([start/0]).
start() ->
X = 40,
Y = 50,
result = X + Y,
io:fwrite("~w",[Result]).
Nếu bạn cố gắng biên dịch chương trình trên, bạn sẽ gặp lỗi thời gian biên dịch sau.
Đầu ra
helloworld.erl:8: variable 'Result' is unbound
Thứ hai, tất cả các biến chỉ có thể được gán một lần. Hãy lấy một ví dụ về việc gán một biến nhiều lần.
Thí dụ
-module(helloworld).
-export([start/0]).
start() ->
X = 40,
Y = 50,
X = 60,
io:fwrite("~w",[X]).
Nếu bạn cố gắng biên dịch chương trình trên, bạn sẽ nhận được lỗi thời gian biên dịch sau.
Đầu ra
helloworld.erl:6: Warning: variable 'Y' is unused
helloworld.erl:7: Warning: no clause will ever match
helloworld.erl:7: Warning: the guard for this clause evaluates to 'false'
In các biến
Trong phần này chúng ta sẽ thảo luận về cách sử dụng các hàm khác nhau của biến in.
Sử dụng hàm io: fwrite
Bạn sẽ thấy điều này (io: fwrite) được sử dụng trong tất cả các chương trình trên. Cácfwrite hàm là một phần của mô-đun 'io' hoặc Erlang, có thể được sử dụng để xuất giá trị của các biến trong chương trình.
Ví dụ sau cho thấy một vài tham số khác có thể được sử dụng với câu lệnh fwrite.
Thí dụ
-module(helloworld).
-export([start/0]).
start() ->
X = 40.00,
Y = 50.00,
io:fwrite("~f~n",[X]),
io:fwrite("~e",[Y]).
Đầu ra của chương trình trên sẽ là:
Đầu ra
40.000000
5.00000e+1
Những điểm sau đây cần được lưu ý về chương trình trên.
~ - Ký tự này tượng trưng rằng một số định dạng cần được thực hiện cho đầu ra.
~f- Đối số là một float được viết là [-] ddd.ddd, trong đó độ chính xác là số chữ số sau dấu thập phân. Độ chính xác mặc định là 6 và nó không được nhỏ hơn 1.
~n - Đây là để println sang một dòng mới.
~e- Đối số là một số float được viết là [-] d.ddde + -ddd, trong đó độ chính xác là số chữ số được viết. Độ chính xác mặc định là 6 và nó không được nhỏ hơn 2.