Biến cục bộ
Thuộc phần Nền tảng cơ bản trong hành trình Lua của Coddy. Bài học 84 trên 90.
Lua cung cấp từ khóa (keyword) local để tạo các biến có phạm vi giới hạn. Khi khai báo một biến bằng local, bạn chỉ có thể truy cập biến đó trong khối lệnh cụ thể nơi bạn tạo biến.
Đây là cách bạn tạo một biến cục bộ:
local playerHealth = 100
local isGameActive = trueĐiểm khác biệt chính là biến cục bộ chỉ tồn tại trong khối lệnh của nó. Ví dụ, nếu bạn tạo một biến cục bộ bên trong khối do...end, bạn không thể truy cập biến đó bên ngoài khối:
do
local secretCode = 1234
print(secretCode) -- Đoạn này chạy được
end
print(secretCode) -- In ra nil: biến local không còn tồn tại ở đâyBên ngoài khối, tên này tham chiếu đến một biến toàn cục chưa từng được gán giá trị, vì vậy Lua trả về nil thay vì báo lỗi.
Thử thách
DễTạo một khối lệnh do...end và khai báo một biến cục bộ tên là secretMessage bên trong khối đó với giá trị "Hidden data". Trong cùng khối lệnh, in ra giá trị của secretMessage.
Sau khi khối lệnh do...end kết thúc, hãy thử in ra secretMessage lần nữa. Vì biến cục bộ chỉ tồn tại trong phạm vi khối lệnh, câu lệnh in ra thứ hai này sẽ xuất ra nil vì biến không còn truy cập được bên ngoài khối lệnh.
Tự làm thử
-- TODO: Viết code của bạn ở đây
-- Tạo một khối lệnh (block) do...end với biến (variable) cục bộ secretMessage
-- In secretMessage ra bên trong khối lệnh
-- Sau đó, thử in secretMessage ra bên ngoài khối lệnhBài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Nền tảng cơ bản
4Toán tử 2: quan hệ và logic
Toán tử bằngToán tử quan hệToán tử andToán tử orToán tử notĐánh giá ngắn mạchGiá trị truthy và falsyÔn tập: logic đơn giản10Bảng phần 1: kiểu danh sách
Bảng là gì?Tạo bảngTruy cập phần tử theo chỉ sốSửa đổi phần tử theo chỉ sốToán tử độ dài '#'table.insert()table.remove()Ôn tập: quản lý thành viên nhóm13Dự án: Cửa hàng thuốc đơn giản
Thiết lập dự ánThêm một loại thuốc2Biến và kiểu dữ liệu
Biến là gì?Các sốChuỗiGiá trị BooleanGiá trị 'nil'Hàm type()Quy ước đặt tênÔn tập: hồ sơ nhân vật5Đầu ra cơ bản
In các giá trị cố địnhIn biếnIn nhiều giá trịKết hợp chuỗi và biếnHàm tostring()Đầu vàoÉp kiểuÔn tập: Báo cáo trạng tháiÔn tập: Đến 1208Cơ bản về thao tác với chuỗi
string.len()string.upper & string.lowerstring.sub()string.rep()string.find()Ôn tập: định dạng tên người dùng11Bảng 2: kiểu từ điển
Cặp khóa-giá trịTạo bảng kiểu từ điểnTruy cập bằng ký hiệu ngoặc vuôngTruy cập bằng ký hiệu dấu chấmThêm và sửa đổi các cặpXóa các cặp bằng nilÔn tập: thuộc tính của phần tử14Phạm vi biến
Biến toàn cụcBiến cục bộVì sao dùng biến cục bộ?Phạm vi và khối lệnhÔn tập: câu đố về phạm vi3Toán tử 1: số học và nối chuỗi
Toán tử số họcToán tử chia lấy dưToán tử lũy thừaNối chuỗiThứ tự ưu tiên của toán tửÔn tập: phép tính đơn giản6Dự án: Hiển thị chỉ số nhân vật
Lời chào mừngKhai báo chỉ số nhân vật9Cơ bản về hàm
Khai báo hàmGọi hàmHàm có tham sốHàm có nhiều tham sốCâu lệnh returnÔn tập: Máy tính diện tíchTự luyện tập: Trình biên dịch Lua online