Khai báo và truy cập Map
Thuộc phần Giới thiệu về Luau trong hành trình Lua của Coddy. Bài học 16 trên 80.
Khai báo một từ điển có kiểu dữ liệu trông giống như các hàm khởi tạo bảng mà bạn vẫn thường viết: chú thích kiểu chỉ định kiểu dữ liệu của khóa và giá trị:
local stock: {[string]: number} = {apples = 12, bananas = 5}Đọc và ghi sử dụng cách truy cập chỉ số mà bạn đã biết. Với các khóa là định danh hợp lệ, stock.apples và stock["apples"] truy cập cùng một mục; cách dùng dấu ngoặc vuông cũng xử lý được khóa có dấu cách hoặc khóa được lưu trong biến:
stock["cherries"] = 20 -- thêm một mục mới
stock.bananas = 8 -- cập nhật một mục đã có
print(stock["apples"]) -- 12
print(stock["plums"]) -- nil: chưa từng gán giá trịBộ kiểm tra kiểu dữ liệu giám sát mọi thao tác ghi: stock["apples"] = "many" bị báo lỗi vì "many" không phải là số, còn dùng số làm khóa cũng bị báo lỗi vì khóa phải là chuỗi.
Để xóa một mục, gán nil cho khóa của mục đó: stock["bananas"] = nil xóa hẳn mục này, và những lần đọc sau sẽ trả về nil. Không có hàm xóa riêng; đây là cách dùng Lua tiêu chuẩn và vẫn được kiểm tra kiểu dữ liệu trên từ điển.
Thử thách
DễLưu trữ đồ dùng học tập trong một từ điển có kiểu dữ liệu.
- Khai báo
local stock: {[string]: number} = {pens = 40, rulers = 15}. - Thêm
stock["erasers"] = 25và đổirulersthành10. - In số lượng
pens,rulers,erasersvàglue, mỗi giá trị trên một dòng.
Nhấn Chạy code: đầu ra hiển thị 40, 10, 25 và nil.
Tự làm thử
-- 1) Khai báo stock: {[string]: number} với pens = 40, rulers = 15
-- 2) Thêm erasers = 25, đổi rulers thành 10
-- 3) In ra pens, rulers, erasers, rồi đến glue
Tất cả bài học trong Giới thiệu về Luau
1Bắt đầu với Luau
Luau là gì?Tại sao nên dùng Luau?Đoạn code Luau đầu tiênKiểm tra kiểu và chế độ lỗiÔn tập: Giới thiệu về Luau4Làm việc với hàm
Kiểu dữ liệu cho tham số và giá trị trả vềKiểu dữ liệu cho hàm ẩn danhHàm không trả về giá trịTham số tùy chọnGiá trị tham số mặc địnhGiá trị Boolean mặc địnhHàm có số lượng tham số thay đổiĐịnh nghĩa kiểu hàmÔn tập: hàm có kiểu dữ liệu2Kiểu dữ liệu cốt lõi
Số, chuỗi và BooleanKiểu 'any': lối thoátKiểu 'unknown'Kiểu Nil và kiểu tùy chọnSuy luận kiểu trong thực tếChú thích kiểu tường minhÔn tập: luyện tập với kiểu dữ liệu cốt lõi5Bí danh kiểu, kiểu hợp và kiểu giao
Bí danh kiểu cho kiểu nguyên thủyKiểu hợpLàm việc với kiểu hợpKiểu literalKiểu giaoKết hợp bí danh kiểuÔn tập: kết hợp kiểu nâng cao3Bảng có kiểu: mảng và Map
Mảng có kiểuThêm và đọc phần tửKiểu Map là gì?Khai báo và truy cập MapDuyệt bảngBảng có cấu trúc hỗn hợpĐọc lướiTạo lướitable.unpackÔn tập: mảng và MapTự luyện tập: Trình biên dịch Luau online