Cảm ơn bạn đã gửi yêu cầu! Một thành viên trong đội ngũ của chúng tôi sẽ liên hệ với bạn ngay lập tức.
Cảm ơn bạn đã gửi đặt chỗ! Một thành viên trong đội ngũ của chúng tôi sẽ liên hệ với bạn ngay lập tức.
Đề cương khóa học
Giới thiệu về Lua
- Một chút về lịch sử
- Mục tiêu, đặc điểm và các mục tiêu không theo đuổi của Lua
- Các nguồn tài liệu và hướng dẫn của Lua
- Cài đặt trình thông dịch Lua
- Cấu hình và sử dụng LuaRocks
Cú pháp và ngữ nghĩa cơ bản
- Định danh
- Ghi chú, khối ghi chú
- Biến toàn cục và việc áp dụng tính nghiêm ngặt
- Biến cục bộ
- Chương trình độc lập, đối số chương trình
- Đơn vị biên dịch, khối lệnh, biểu thức, dấu chấm phẩy
Loại dữ liệu và cấu trúc dữ liệu
- Loại cơ bản: nil, boolean, number, string
- Loại đối tượng: function, userdata, thread, table
- Tham chiếu/đối tượng so với giá trị cơ bản
- Tầm quan trọng của bảng trong Lua
Giới thiệu về bảng và sự đa dụng của chúng
- Bảng như một mảng kết hợp
- Bảng như mảng số, chuỗi
Cấu trúc điều khiển cơ bản
- Cú if then elseif else end
- Vòng lặp while
- Vòng lặp repeat
- Vòng lặp for đơn giản
Xử lý lỗi
- Giá trị trả về so với ngoại lệ
- Chuyển đổi giá trị trả về thành ngoại lệ
- Chuyển đổi ngoại lệ thành giá trị trả về
- Cấp độ lỗi
Các chương trình ví dụ
- Đánh giá đa thức
- Tìm kiếm theo chiều rộng
- Bài tập bổ sung
Tìm hiểu thêm về hàm
- Đối số có tên
- Gọi theo hướng đối tượng
- Đóng (Closures)
- Currying
- Gọi đuôi (Tail calls)
- Gán và trả về nhiều giá trị
- Varargs
Trình lặp và đồng thời (co-routines)
- Vòng lặp for tổng quát
- Trình lặp không trạng thái so với có trạng thái
- Sự khác biệt giữa trình lặp và đồng thời
Bảng meta và phương thức meta
- Ví dụ về tập hợp (set)
- Phương thức meta __tostring
- Phương thức meta số học
- Phương thức meta __index, __newindex
- Phương thức meta __len
Module và gói (packages)
- Sử dụng module
- Tạo module
- Tổ chức module thành các gói
Lập trình hướng đối tượng
- Các khối xây dựng của OOP trong Lua
- Các ví dụ
Bàn luận về các tính năng ngôn ngữ nâng cao hơn
- Bảng yếu (Weak tables)
- Trình dọn dẹp (Finalizers)
- Biên dịch, eval, nạp (loading)
Yêu cầu
Phải có kiến thức về ít nhất một ngôn ngữ lập trình khác. Có kinh nghiệm lập trình. Tùy chọn: Nếu đã quen thuộc với các ngôn ngữ kịch bản khác, việc hiểu Lua sẽ dễ dàng hơn.
14 Giờ