Menu
CoddyTech

Tham số tùy chọn

Thuộc phần Giới thiệu về Luau trong hành trình Lua của Coddy. Bài học 26 trên 80.

Trong Lua thuần, bạn luôn có thể bỏ qua đối số: các đối số bị thiếu sẽ âm thầm trở thành nil, và việc quên xử lý trường hợp đó là nguyên nhân kinh điển gây ra bug. Luau làm rõ khả năng này: thêm ? vào kiểu của tham số để đánh dấu tham số đó là tùy chọn.

function greet(name: string, title: string?): string
    if title then
        return `{title} {name}`
    end
    return `Hello, {name}`
end

print(greet("Ada"))          -- Xin chào, Ada
print(greet("Ada", "Dr."))   -- Dr. Ada

string? có nghĩa là "string hoặc nil". Bên gọi có thể truyền một chuỗi hoặc bỏ qua hoàn toàn đối số đó; các tham số không có ? là bắt buộc, và trình kiểm tra sẽ báo lỗi khi lời gọi hàm bỏ qua chúng.

Bên trong hàm, tham số tùy chọn có thể là nil, vì vậy hãy kiểm tra tham số đó trước khi sử dụng: if title then ... end là cách làm phổ biến. Nếu bỏ qua bước kiểm tra rồi nối nil vào một chuỗi, bạn sẽ gặp cùng lỗi khi chạy mà Lua vẫn luôn gây ra; trình kiểm tra kiểu sẽ cảnh báo bạn trước.

challenge icon

Thử thách

Dễ

Viết một hàm (function) hồ sơ có tên hiển thị không bắt buộc.

  1. Viết local function createUserProfile(username: string, displayName: string?): string.
  2. Trả về `Profile: {displayName} (@{username})` khi có displayName, nếu không thì trả về `Profile: @{username}`.
  3. In ra createUserProfile("john_doe", "John Doe") và createUserProfile("jane_smith").

Nhấn Chạy: đầu ra hiển thị Profile: John Doe (@john_doe) và Profile: @jane_smith.

Tự làm thử

-- 1) createUserProfile(username: string, displayName: string?): string
-- 2) in ra kết quả khi có và không có tên hiển thị

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