Menu
CoddyTech

Bảng có cấu trúc hỗn hợp

Thuộc phần Giới thiệu về Luau trong hành trình Lua của Coddy. Bài học 18 trên 80.

Mảng chứa nhiều giá trị cùng một kiểu dữ liệu; map chứa khóa cùng một kiểu và giá trị cùng một kiểu. Nhưng các bảng Lua bạn thường dùng nhất lại trộn nhiều kiểu dữ liệu trong các trường có tên: một người chơi có tên dạng chuỗi, điểm dạng số và cờ dạng boolean. Luau biểu diễn các kiểu này bằng một hình dạng: kiểu bảng liệt kê từng trường cùng kiểu dữ liệu riêng của trường đó.

type Point = {x: number, y: number}

local origin: Point = {x = 0, y = 0}
print(origin.x)

Từ khóa type tạo một bí danh kiểu dữ liệu: một tên có thể tái sử dụng cho hình dạng đó. Tên này chỉ tồn tại để trình kiểm tra kiểu dữ liệu sử dụng: không có giá trị nào mang tên Point được tạo ra khi chạy chương trình. Mỗi trường có thể có một kiểu dữ liệu khác nhau:

type Player = {name: string, score: number, active: boolean}

local player: Player = {name = "Rio", score = 1500, active = true}
print(`{player.name} has {player.score} points`)

Khi đã khai báo hình dạng, trình kiểm tra biết player.score là một số và phát hiện lỗi sớm: lỗi gõ nhầm như player.scroe (không có trường này), hoặc gán player.score = "high" (sai kiểu dữ liệu). Đây chỉ là phần mở đầu: một chương sau sẽ tìm hiểu sâu hơn về hình dạng, trường tùy chọn và phương thức.

challenge icon

Thử thách

Dễ

Mô tả một người chơi bằng kiểu shape.

  1. Viết type Player = {name: string, score: number, active: boolean}.
  2. Tạo local player: Player = {name = "Kai", score = 900, active = false}.
  3. In ra player.active, rồi `{player.name} has {player.score} points`.

Nhấn Chạy code: đầu ra hiển thị false và Kai has 900 points.

Tự làm thử

-- 1) type Player = {...}
-- 2) local player: Player = {...}
-- 3) in ra cờ active, rồi đến dòng tóm tắt

Tất cả bài học trong Giới thiệu về Luau

Tự luyện tập: Trình biên dịch Luau online