Mục lục
Biến trong Lua
Chào mừng anh, nếu muốn hiểu các đoạn script, thì việc nắm vững kiến thức về biến trong Lua là điều rất quan trọng. Biến giống như những chiếc hộp có tên, dùng để lưu trữ dữ liệu mà script có thể xử lý. Những dữ liệu đó có thể là số, chữ, v.v. Dưới đây là tổng quan về biến trong Lua: kiểu dữ liệu, phạm vi, và cách sử dụng.
Quy tắc đặt tên biến
Trước khi giải thích thêm, hãy điểm qua một số quy tắc cơ bản khi đặt tên biến trong Lua:
- Tên biến có thể chứa chữ cái, số và dấu gạch dưới _.
- Tên không được bắt đầu bằng số.
- Lua phân biệt chữ hoa và chữ thường, nên myVar và MyVar là hai biến khác nhau.
- Không được dùng các từ khóa dành riêng của Lua như and, break, do, else, end, v.v. làm tên biến, nếu không sẽ bị lỗi.
Các kiểu dữ liệu của biến
- Number (Số): Dùng để lưu giá trị số, ví dụ: 5, 3.14.
- String (Chuỗi): Là các từ hoặc câu, phải đặt trong dấu nháy đơn ' ' hoặc nháy kép “ “, ví dụ: “Hello”, 'World'.
- Boolean (Đúng/Sai): Chỉ có hai giá trị: true hoặc false.
- Table (Bảng): Giống như một cái hộp chứa nhiều dữ liệu, giống danh sách hoặc từ điển.
Khai báo biến
Trong Lua, anh không cần khai báo kiểu dữ liệu trước. Chỉ cần gán giá trị, Lua sẽ tự hiểu kiểu của biến.
-- Biến kiểu số local age = 25 -- Biến kiểu chuỗi local playerName = "John" -- Biến kiểu boolean local isOnline = true -- Biến kiểu bảng (table) local playerData = {name = "Alice", score = 100} -- Một dạng khác của bảng local playerIds = {1583, 2229}
Phạm vi (scope) của biến
Phạm vi của biến là nơi mà biến có thể được truy cập. Có 2 loại phạm vi chính trong Lua:
- Phạm vi toàn cục (Global Scope): Biến được khai báo bên ngoài mọi block hoặc hàm, có thể được truy cập từ bất cứ đâu trong script.
- Phạm vi cục bộ (Local Scope): Biến được khai báo bên trong một block hoặc hàm, chỉ truy cập được trong block hoặc hàm đó.
Trong Lua, một block là một nhóm câu lệnh được bao trong các từ khóa như do, then, hoặc bên trong một hàm, và kết thúc bằng end. Block giúp tổ chức mã rõ ràng hơn.
-- Biến toàn cục globalVar = 10 -- Hàm định nghĩa biến cục bộ local function myFunction() -- Biến localVar chỉ truy cập được trong hàm này local localVar = 20 print(localVar) -- In ra 20 end -- Truy cập biến toàn cục print(globalVar) -- In ra 10 -- Truy cập biến cục bộ bên ngoài hàm sẽ bị nil (không có giá trị) print(localVar) -- Kết quả: nil
Sử dụng biến
Giờ khi đã hiểu cơ bản, mình sẽ xem cách sử dụng biến trong các script Lua. Một số trường hợp phổ biến:
playerName = "NotSoPr17" uid = 75820841 uses_lua = true print(playerName) if uid >= 0 then print("uid: ".. uid) end if uses_lua == true then print("Player uses lua") else print("Player doesn't use lua") end
Toán học với biến số
local num1 = 10 local num2 = 5 -- Cộng local sum = num1 + num2 -- Trừ local difference = num1 - num2 -- Nhân local product = num1 * num2 -- Chia local quotient = num1 / num2 -- Phần dư local remainder = num1 % num2
Xử lý chuỗi (String Manipulation)
local greeting = "Hello" local name = "Alice" -- Nối chuỗi local message = greeting .. ", " .. name .. "!" print(message) -- In ra: Hello, Alice!