Kiểu dữ liệu cho hàm ẩn danh
Thuộc phần Giới thiệu về Luau trong hành trình Lua của Coddy. Bài học 24 trên 80.
Trong Lua, hàm là các giá trị: bạn đã lưu chúng vào biến và truyền chúng đi khắp nơi: local f = function(x) return x * 2 end. Những hàm ẩn danh (biểu thức hàm) này nhận chú thích kiểu dữ liệu giống như hàm có tên:
local double = function(x: number): number
return x * 2
end
local shout = function(text: string): string
return string.upper(text) .. "!"
endCác tham số có dạng name: type bên trong dấu ngoặc đơn, còn kiểu trả về đứng sau dấu ngoặc đơn đóng. Điểm khác biệt duy nhất so với hàm có tên là từ khóa function không có tên theo sau, và toàn bộ biểu thức được gán cho một biến.
Nếu bạn đã học JavaScript hoặc TypeScript, hãy lưu ý rằng Luau không có hàm mũi tên. Không có cú pháp =>. Mọi biểu thức hàm đều được viết bằng function ... end, dù dài hay ngắn.
Sau khi được gán, bạn gọi hàm thông qua biến như với mọi hàm khác: double(21) trả về 42, và bộ kiểm tra xác minh từng lần gọi dựa trên các chú thích bạn đã viết.
Thử thách
DễLưu các hàm có kiểu dữ liệu trong biến cục bộ.
- Viết lại
subtractthànhlocal subtract = function(a: number, b: number): number, giữ nguyên phần thân hàm. - Thêm
local isPositive = function(num: number): booleanđể trả vềnum > 0. - In ra
subtract(10, 3)vàisPositive(-5).
Nhấn Run Code: đầu ra hiển thị 7 và false.
Tự làm thử
-- Viết lại đoạn này thành một hàm (function) ẩn danh và lưu vào biến cục bộ
function subtract(a: number, b: number): number
return a - b
end
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