Menu
CoddyTech

Thêm và sửa đổi các cặp

Thuộc phần Nền tảng cơ bản trong hành trình Lua của Coddy. Bài học 68 trên 90.

Để thêm một cặp khóa-giá trị mới hoặc sửa đổi một cặp hiện có, bạn chỉ cần dùng toán tử gán với ký hiệu dấu chấm hoặc ký hiệu dấu ngoặc vuông:

local player = {
    ["name"] = "Alex",
    ["level"] = 5
}

-- Thêm một cặp khóa (key) và giá trị (value) mới
player.gold = 100

-- Sửa một giá trị hiện có
player.level = 6

Điểm hay của cách làm này là Lua không phân biệt giữa việc thêm và sửa đổi. Nếu khóa "gold" chưa tồn tại trong bảng, khóa đó sẽ được tạo với giá trị 100. Nếu khóa "level" đã tồn tại, giá trị của khóa đó sẽ được cập nhật thành 6.

Bạn có thể dùng ký pháp dấu chấm hoặc ký pháp dấu ngoặc cho các thao tác này:

-- Cả hai cách này đều hoạt động giống nhau
player.class = "Warrior"
player["weapon"] = "Sword"
challenge icon

Thử thách

Dễ

Tạo một hệ thống phát triển nhân vật thể hiện cả việc thêm thuộc tính mới và sửa đổi thuộc tính hiện có. Bắt đầu bằng cách tạo một bảng (table) tên là hero với các cặp khóa-giá trị ban đầu sau: ["name"] được gán chuỗi "Warrior", ["level"] được gán số 5 và ["health"] được gán số 120.

Sau khi tạo bảng nhân vật ban đầu, hãy thực hiện các thay đổi sau: Trước tiên, thêm một cặp khóa-giá trị mới ["class"] với giá trị "Paladin" bằng ký pháp dấu chấm. Tiếp theo, sửa giá trị level hiện có thành 7 bằng ký pháp dấu ngoặc vuông. Cuối cùng, thêm một cặp khóa-giá trị mới ["mana"] với giá trị 80 bằng ký pháp dấu ngoặc vuông.

Sau khi hoàn tất mọi thay đổi, in ra lớp của anh hùng và cấp độ đã cập nhật để xác minh các thay đổi.

Tự làm thử

-- Tạo bảng hero ban đầu
local hero = {
    -- TODO: Thêm các cặp khóa-giá trị ban đầu vào đây
}

-- TODO: Thêm thuộc tính mới và sửa các thuộc tính hiện có bằng cú pháp dấu chấm và dấu ngoặc vuông

-- In ra lớp của hero và cấp độ sau khi cập nhật
quiz iconTự kiểm tra

Bà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

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