Menu
CoddyTech

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) .. "!"
end

Cá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.

challenge icon

Thử thách

Dễ

Lưu các hàm có kiểu dữ liệu trong biến cục bộ.

  1. Viết lại subtract thành local subtract = function(a: number, b: number): number, giữ nguyên phần thân hàm.
  2. Thêm local isPositive = function(num: number): boolean để trả về num > 0.
  3. 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

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