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"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
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
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ử3Toá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