Lua là một ngôn ngữ tự động hóa, nên trong Lua không có khái niệm khai báo kiểu dữ liệu, mỗi dữ liệu lưu trữ một loại dữ liệu của chính nó.
Loại dữ liệu
Các loại dữ liệu trong Lua
Trong Lua có 8 loại dữ liệu cơ bản chính:
nil
boolean
number
string
userdata
function
thread
table
Khai báo biến trong Lua
Cách khai báo một biến trong Lua.
a = "Hello STDIO"
Tên biến không được bắt đầu bằng 1 con số nhưng vẫn có thể chưa 1 con số trong tên, tên có thể bắt đầu bằng dấu gạch dưới _
và chữ đi theo sau là số.
3 = "invalid variable name"
Đoạn code trên không hợp lệ vì tên biến bắt đầu bằng số.
Quy tắc khai báo 1 biến là:
- Khai báo tên biến với quy định trên.
- Theo sau là dấu bằng
=
để gán dữ liệu. - Tiếp theo là dữ liệu. Loại dữ liệu của một biến sẽ được gán tự động tùy theo dữ liệu mà người dùng gán.
nil
Là loại biến mà được tự động gán cho các biến nếu biến đó không có dữ liệu.
Ví dụ:
a print(a)
Tất cả các biến đều có dữ liệu mặc định là nil
, ở đoạn code trên khi print a
sẽ nhận được là nil
, vì chỉ khai báo nhưng chưa gán giá trị hay dữ liệu cho biến a
này.
boolean
Là loại biến chỉ nhận hai giá trị true
và false
.
Ví dụ:
Boolean_Var = false
number
Gồm 2 loại dữ liệu chính là integer
(số nguyên) và float
(số thực).
integer
Integer_Num = 23
float
Float_Num = 6.8
Đối với biết float
điều cần lưu ý là trong Lua kiểu dữ liệu float
chỉ giới hạn 13 số sau dấu chấm, nếu vượt quá giới hạn Compiler của Lua sẽ tự lấy tới số thứ 13 và dừng tại đó.
Ví dụ:
Float_13_digits = 1,321422345129884 -- Sau dấu chấm có tới 15 số print(Float_13_digits) -- chỉ in ra màn hình là 1,3214223451298
String
Kiểu String
trong Lua là một mảng các ký tự riêng lẻ (char
). Đồng thời Lua đã cung cấp nhiều hàm để xử lý với biến kiểu String
.
Var_String = "String STDIO"
Table
Kiểu table trong Lua là List
các phần tử bao gồm các kiểu dữ liệu khác ngoại trừ nil
và function
.
My_Table = {} My_Table_2 = {1, 2, 8, 7, 12}
Loại biến
Trong Lua có ba loại biến chính là biến Global
, Local
, Table
.
Mặc định với tất cả các biến khai báo sẽ là biến Global
, để khai báo 1 biến local
phải định danh rõ ràng cho biến đó.
G_Integer_a = 3 --Một biến Global tên là G_Integer_a có dữ liệu là 3 nên kiểu dữ liệu sẽ là kiểu Integer local Local_String_b = "STDIO" --Một biến được định danh là Local có tên là Local_String_b dữ liệu là "STDIO" nên kiểu dữ liệu sẽ là String
Lưu ý để khai báo một biến local phải sử dụng keyword local
trước tên biến bất kì.
Cách khai báo biến
Có thể khai báo và gán liên lục các biến theo tuần tự dữ liệu khác nhau.
Ví dụ:
a, b, c= 3, "Lua", 1.2
Biến a
có dữ liệu là 3
, biến b
có dữ liệu là Lua
, biến c
có dữ liệu là 1.2
và là kiểu float
(số thực).
Đối với ngôn ngữ Lua, có thể gán một hàm cho biến bất kì.
Ví dụ:
a = print --Gán hàm print cho biến a
Vậy bất cứ khi nào gọi biến a
với cú pháp như hàm print
bình thường vẫn sẽ sử dụng được hàm print
thông qua biến a
này.
Lua cung cấp hàm typeof(var)
để có thể kiểm tra được bất cứ loại biến bất kỳ nào chỉ cần truyền vào tham số var
với tên biến và print
ra màn hình.