Extension:Scribunto/Lua reference manual/vi

Giới thiệu
Cẩm nang này cung cấp tài liệu về Lua theo cách sử dụng trong MediaWiki qua phần mở rộng Scribunto. Một số phần bắt nguồn từ cẩm nang tra cứu Lua 5.1, cẩm nang này được phát hành theo một giấy phép kiểu MIT.

Cẩm nang dẫn xuất này cũng có thể được sao chép theo các điều kiện của cùng giấy phép.

Bắt đầu
Trên một wiki chạy MediaWiki có kích hoạt Lua, hãy tạo ra trang mới có tên bắt đầu với "Module:", thí dụ "Module:Xôi gấc". Hãy sao chép văn bản sau vào mô đun mới:

Hãy lưu nội dung đó. Tại một trang khác (không phải mô đun), viết:

Thay thế "Xôi gấc" bằng tên gọi của mô đun. Đoạn mã này sẽ gọi hàm "hello" được xuất phát từ mô đun và sẽ được tự động thay thế bằng văn bản mà hàm  cho ra, tức "Xin chào thế giới!" trong thí dụ này.

Vì cú pháp bình thường để định rõ hàm không cho phép bỏ dấu, bạn cũng có thể sử dụng cú pháp sau để định rõ một hàm có tên tiếng Việt:

Và gọi hàm dùng đoạn mã sau:

Khuyến khích bạn gọi đến mã nguồn Lua trong bản mẫu thay vì trang nội dung, để cho các trang nội dung chỉ cần gọi bản mẫu với cú pháp bản mẫu bình thường, không cần phân biệt Lua và mã wiki. Kiểu này cũng tránh đưa cú pháp phức tạp vào không gian tên nội dung của wiki.

Tài liệu mô đun
Scribunto cho phép cung cấp tài liệu về mô đun dùng trang con trong không gian tên Module. Theo mặc định, trang con là "/tài liệu" và được hiển thị ở trên mã nguồn tại trang mô đun. Thí dụ tài liệu về "Module:Xôi gấc" được viết tại "Module:Xôi gấc/tài liệu".

Có thể cấu hình hệ thống này dùng các thông điệp trong không gian tên MediaWiki được liệt kê ở dưới:
 * scribunto-doc-subpage-name: Đặt tên của trang con tài liệu. Các trang con với tên này được phân tích như mã wiki, thay vì mã nguồn Lua, và không gọi được dùng cú pháp . Mặc định là "tài liệu".
 * scribunto-doc-subpage-does-not-exist: Thông điệp được hiển thị khi trang con tài liệu không tồn tại. Tên trang con được cung cấp qua tham số . Mặc định là lời giải thích đơn giản in xiên.
 * scribunto-doc-subpage-show: Thông điệp được hiển thị khi trang con tài liệu có tồn tại. Tên trang con được cung cấp qua tham số . Mặc định là nhúng trang con tài liệu.
 * scribunto-doc-subpage-header: Đầu đề được hiển thị khi xem trang con tài liệu riêng. Tên mô đun được cung cấp qua tham số . Thông điệp mặc định là lời giải thích đơn giản in đậm.

Lưu ý không thể xếp các mô đun trực tiếp vào thể loại hoặc đặt liên kết liên wiki trực tiếp vào mô đun. Tuy nhiên, bạn có thể đưa các thể loại và liên kết này vào trang con tài liệu ở trong khối thẻ, khối này chỉ hiển thị khi được tự động nhúng vào trang mô đun.

Các dấu hiệu
Tên (còn được gọi định danh) trong Lua là bất kỳ loạt chữ tiếng Anh, con số, và dấu gạch dưới, miễn là không bắt đầu với con số. Lua phân biệt chữ hoa/thường trong các tên: "foo", "Foo", và "FOO" đều khác nhau.

Các từ khóa sau được bảo lưu và không được phép sử dụng làm tên:  Các tên bắt đầu với dấu gạch dưới và một loạt chữ hoa dẫn sau được bảo lưu để Lua dùng làm biến số toàn cầu.
 * and
 * break
 * do
 * else
 * elseif
 * end
 * false
 * for
 * function
 * if
 * in
 * local
 * nil
 * not
 * or
 * repeat
 * return
 * then
 * true
 * until
 * while

Các dấu hiệu khác là: 
 * &#x25;
 * &#x3a;
 * &#x3b;
 * ]
 * }
 * &#x3a;
 * &#x3b;
 * ]
 * }
 * &#x3a;
 * &#x3b;
 * ]
 * }
 * &#x3b;
 * ]
 * }
 * ]
 * }
 * ]
 * }
 * ]
 * }
 * }
 * }
 * }

Chú thích
Một lời chú thích bắt đầu với  ở bất cứ phần nào bên ngoài chuỗi. Nếu ngay đằng sau  có dấu ngoặc dài mở, lời chú thích tiếp tục cho đến dấu ngoặc dài đóng, không thì lời chú thích tiếp tục cho đến cuối dòng hiện tại.

Kiểu dữ liệu
Lua là một ngôn ngữ tạo kiểu động, có nghĩa rằng các biến số và đối số hàm không có kiểu, chỉ có các giá trị được chỉ định. Mọi giá trị có kiểu.

Lua có tám kiểu dữ liệu cơ bản; trong số này chỉ có sáu được sử dụng đối với phần mở rộng Scribunto. Hàm  cho ra kiểu của một giá trị.

Hàm  chuyển đổi một giá trị thành chuỗi. Hàm  chuyển đổi một giá trị thành số nếu có thể, không thì cho ra vô giá trị. Không có hàm đặc biệt để chuyển đổi một giá trị thành các kiểu dữ liệu kia.

Các số được tự động chuyển đổi thành chuỗi khi được sử dụng như một chuỗi, chẳng hạn khi là một toán hạng của phép nối chuỗi. Các chuỗi được  chấp nhận được tự động chuyển đổi thành số khi được sử dụng làm toán hạng của một phép tính số học. Ở những chỗ cần giá trị luận lý,  và   là sai, còn   và bất kỳ giá trị khác là thực.

nil
Kiểu dữ liệu của  là vô giá trị. Không có thể sử dụng vô giá trị là một chìa khóa trong bảng, và một chìa khóa không được chỉ định là bằng với một chìa khóa được chỉ định vô giá trị.

Vô giá trị được chuyển đổi thành chuỗi là "nil". Vô giá trị được chuyển đổi thành giá trị luận lý là giá trị sai.

boolean
Các giá trị luận lý (giá trị Boole) là  (thực) và   (sai).

được chuyển đổi thành chuỗi là "true", còn  là "false". Không giống nhiều ngôn ngữ khác, Lua không cho phép chuyển đổi giá trị luận lý trực tiếp thành số. Hơn nữa, không giống nhiều ngôn ngữ, chỉ có giá trị sai và vô giá trị được coi là sai đối với luận lý; số 0 và chuỗi rỗng đều được coi là thực.