Luau globals

แสดงที่เลิกใช้งานแล้ว

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

รายการต่อไปนี้เป็นรายการฟังก์ชันและตัวแปรที่เป็นเอกลักษณ์ของ Luauฟังก์ชันเหล่านี้สามารถใช้ในการติดตั้งมาตรฐานของทั้ง Luau และ Lua 5.1.4 แม้ว่าจะมีความแตกต่างในวิธีที่บางส่วนของพวกเขาทำงานบน Roblox ก็ตาม

สรุป

ฟังก์ชัน

  • assert(value : Variant,errorMessage : string):Variant

    โยนข้อผิดพลาดหากที่ให้ไว้ value ถูกแก้ไขเป็น false หรือ nil

  • error(message : Variant,level : number):()

    หยุดการดำเนินการของスレッドและโยนข้อผิดพลาด

  • restores ขนาดกองหน่วยความจำทั้งหมดในกิโลไบต์

  • getmetatable(t : Variant):Variant

    คืนค่า metatable ของตารางที่กำหนดไว้

  • คืนฟังก์ชัน iterator และตารางสำหรับใช้ในลูป for

  • loadstring(contents : string,chunkname : string):Variant

    คืนรหัสที่ให้ไว้เป็นฟังก์ชันที่สามารถดำเนินการได้

  • newproxy(addMetatable : boolean):userdata

    สร้างว่างเปล่า userdata โดยมีตัวเลือกสำหรับการมีตาราง

  • next(t : table,lastKey : Variant):Variant,Variant

    ฟังก์ชัน iterator สำหรับใช้ในลูป

  • คืนฟังก์ชัน iterator และตารางที่ให้มาสำหรับใช้ในลูป for รอบ

  • pcall(func : function,args : Tuple):boolean,Variant

    รันฟังก์ชันที่ให้มาและจับข้อผิดพลาดที่มันโยน ส่งคืนความสําเร็จของฟังก์ชันและผลลัพธ์ของมัน

  • print(params : Tuple):()

    พิมพ์ค่าทั้งหมดที่ให้ไว้ในออก

  • rawequal(v1 : Variant,v2 : Variant):boolean

    คืนว่า v1 เท่ากับ v2 โดยข้าม metamethods ของพวกเขา

  • rawget(t : table,index : Variant):Variant

    รับค่าจริงของ table[index] โดยข้ามวิธีการเมตาใดๆ

  • คืนความยาวของสตริงหรือตารางโดยข้ามวิธีการเมตาใดๆ

  • rawset(t : table,index : Variant,value : Variant):table

    ตั้งค่าค่าจริงของ table[index] โดยข้ามวิธีการใดๆ

  • require(module : ModuleScript | string | number):Variant

    คืนค่าที่กลับโดย ModuleScript ที่กำหนด หากยังไม่ได้รันแล้วจะรันมัน

  • select(index : Variant,args : Tuple):Tuple

    คืนคำถามทั้งหมดหลังจากดัชนีที่กำหนดแล้ว

  • setmetatable(t : table,newMeta : Variant):table

    ตั้ง metatable ของโต๊ะที่กำหนดไว้

  • tonumber(arg : Variant,base : number):Variant

    คืนค่าที่กำหนดให้แปลงเป็นตัวเลขหรือ nil หากไม่สามารถทำได้

  • tostring(e : Variant):string

    คืนค่าที่กำหนดให้แปลงเป็นสตริงหรือ nil หากไม่สามารถทำได้

  • type(v : Variant):string

    ส่งคืนประเภทพื้นฐานของวัตถุที่ให้มา

  • unpack(list : table,i : number,j : number):Variant

    คืนองค์ประกอบทั้งหมดจากรายการที่กำหนดเป็น tuple

  • xpcall(f : function,err : function,args : Tuple):boolean,Variant

    คล้ายกับ pcall() ยกเว้นใช้ตัวจัดการข้อผิดพลาดที่กําหนดเอง

คุณสมบัติ

  • ตารางที่แชร์ระหว่างสคริปทั้งหมดของระดับบริบทเดียวกัน

  • ตัวแปรระดับโลกที่บันทึกสตริงที่มีเวอร์ชันตัวแปลปัจจุบัน

ฟังก์ชัน

assert

Variant

โยนข้อผิดพลาดหาก value ที่ให้มาเป็น false หรือ nil หากคําสั่งสําเร็จจะส่งค่าทั้งหมดที่ส่งไปให้กลับ


local product = 90 * 4
assert(product == 360, "Oh dear, multiplication is broken")
-- The line above does nothing, because 90 times 4 is 360

พารามิเตอร์

value: Variant

มูลค่าที่จะถูกอ้างถึงกับ

errorMessage: string

ข้อความที่จะแสดงในข้อผิดพลาดหากการอ้างสิทธิ์ล้มเหลว

ค่าเริ่มต้น: assertion failed!

ส่งค่ากลับ

Variant

error

()

สิ้นสุดฟังก์ชันป้องกันล่าสุดที่เรียกและออก message ยกเลิกpcall() แล้วสคริปต์ที่เรียกฟังก์ชันจะสิ้นสุดลงฟังก์ชันข้อผิดพลาดเองไม่เคยกลับและทำหน้าที่เหมือนข้อผิดพลาดของสคริปต์

อาร์กิวเมนต์ level ระบุวิธีการรับตำแหน่งข้อผิดพลาดด้วยระดับ 1 (เริ่มต้น) ตำแหน่งข้อผิดพลาดคือที่ที่ฟังก์ชันข้อผิดพลาดถูกเรียกระดับ 2 ชี้ข้อผิดพลาดไปที่ฟังก์ชันที่เรียกข้อผิดพลาด; และอื่นๆการผ่านระดับ 0 หลีกเลี่ยงการเพิ่มข้อมูลตำแหน่งข้อผิดพลาดในข้อความ

พารามิเตอร์

message: Variant

ข้อความข้อผิดพลาดที่จะแสดง

level: number

ระดับของข้อมูลที่ควรพิมพ์ ค่าเริ่มต้นคือ 1

ค่าเริ่มต้น: 1

ส่งค่ากลับ

()

gcinfo

restores ขนาดกองหน่วยความจำทั้งหมดในกิโลไบต์ตัวเลขสะท้อนการใช้หน่วยความจำปัจจุบันจากมุมมองของระบบปฏิบัติการซึ่งมีการเปลี่ยนแปลงตามเวลาเมื่อคันสะสมขยะปล่อยวัตถุออก

ส่งค่ากลับ

getmetatable

Variant

ส่งคืน metatable ของตารางที่กำหนด t หากมีหนึ่ง, มิฉะนั้นจะส่งคืน nilหาก t มีตารางเมตาและวิธีการเมตา __metatable ถูกตั้งค่า จะส่งค่านั้นแทน


-- สาธิต getmetatable:
local meta = {}
local t = setmetatable({}, meta)
print(getmetatable(t) == meta) --> จริง
-- ทำให้ metatable ดั้งเดิมไม่สามารถกู้คืนได้โดยการตั้งค่า __metatable metamethod:
meta.__metatable = "protected"
print(getmetatable(t)) --> protected

พารามิเตอร์

t: Variant

วัตถุที่จะดึง metatable ของ

ส่งค่ากลับ

Variant

ipairs

ส่งคืนสามค่า: ฟังก์ชัน iterator, ตาราง t และหมายเลข 0ทุกครั้งที่ฟังก์ชัน iterator ถูกเรียก จะส่งคืนคู่ดัชนีตัวเลขถัดไปในตารางเมื่อใช้ในลูปทั่วไป for ค่าการคืนสามารถใช้เพื่อจัดเตรียมการเลื่อนผ่านแต่ละดัชนีทางเลขในตาราง:


local fruits = {"apples", "oranges", "kiwi"}
for index, fruit in ipairs(fruits) do
print(index, fruit) --> 1 แอปเปิ้ล 2 ส้ม 3 กีวี ฯลฯ
end

พารามิเตอร์

ตารางที่องค์ประกอบจะต้องถูกซ้ำไป

ส่งค่ากลับ

loadstring

Variant

โหลดโค้ด Luau จากสตริงและส่งคืนเป็นฟังก์ชัน

ไม่เหมือนกับ Lua 5.1 มาตรฐาน Roblox's Luau ไม่สามารถโหลดโค้ดไบนารีที่สร้างขึ้นได้โดยใช้ loadstring()

loadstring() ถูกปิดใช้งานโดยค่าเริ่มต้น สำหรับคำแนะนำเกี่ยวกับการเปิดใช้งาน โปรดดูที่ ServerScriptService

คําเตือน: วิธีนี้ปิดการปรับแต่ง Luau บางอย่างในฟังก์ชันที่คืนกลับควรใช้ความระมัดระวังสูงสุดเมื่อใช้ loadstring() ; หากความตั้งใจของคุณคือการอนุญาตให้ผู้ใช้รันโค้ดในประสบการณ์ของคุณ ให้แน่ใจว่าปกป้องสภาพแวดล้อมที่ส่งคืนโดยใช้ getfenv() และ setfenv()

พารามิเตอร์

contents: string

สตริงที่ระบุที่จะโหลดเป็นรหัส Luau

chunkname: string

ชื่อชิ้นส่วนทางเลือกสำหรับข้อความข้อผิดพลาดและข้อมูลการดีบัก หากไม่ได้ระบุ Luau จะใช้สตริง contents

ส่งค่ากลับ

Variant

newproxy

สร้างว่างเปล่า userdata โดยมีตัวเลือกสำหรับการมีตาราง

พารามิเตอร์

addMetatable: boolean
ค่าเริ่มต้น: false

ส่งค่ากลับ

คืนฟังก์ชัน iterator, ตารางที่ส่ง t และ nil เพื่อให้การสร้างจะเลื่อนผ่านคู่กุญแจ/ค่าทั้งหมดของตารางนั้นเมื่อใช้ในลูปทั่วไป for :


local scores = {
["John"] = 5,
["Sally"] = 10
}
for name, score in pairs(scores) do
print(name .. " has score: " .. score)
end

พารามิเตอร์

ตารางอาร์เรย์หรือสารบัญที่จะเรียกซ้ำได้

ส่งค่ากลับ

pcall

เรียกฟังก์ชัน func ด้วยอาร์กิวเมนต์ที่กำหนดในโหมดป้องกันซึ่งหมายความว่าข้อผิดพลาดใดๆ ภายใน func จะไม่แพร่กระจาย; แทน, pcall() จะจับข้อผิดพลาดและส่งรหัสสถานะกลับผลลัพธ์แรกคือรหัสสถานะ (เป็นบูลีน) ซึ่งเป็นจริงหากการโทรสำเร็จโดยไม่มีข้อผิดพลาดในกรณีดังกล่าว pcall() จะคืนผลลัพธ์ทั้งหมดจากการโทรหลังจากผลลัพธ์ครั้งแรกนี้ในกรณีที่เกิดข้อผิดพลาด pcall() จะส่งคืนค่าเท็จพร้อมข้อความข้อผิดพลาด

พารามิเตอร์

func: function

ฟังก์ชันที่จะเรียกในโหมดป้องกัน

args: Tuple

อาร์กิวเมนต์ที่จะส่งไปที่ func เมื่อดำเนินการ

ส่งค่ากลับ

Variant

print

()

รับจํานวนอาร์กิวเมนต์ใดก็ได้ และพิมพ์มูลค่าของพวกเขาให้กับออกprint ไม่ได้มีไว้สำหรับการแสดงผลที่รูปแบบ แต่เพียงเป็นวิธีที่รวดเร็วในการแสดงมูลค่า โดยปกติเพื่อการแก้ไขข้อผิดพลาดสำหรับการออกแบบรูปแบบใช้ string.format()บน Roblox, print ไม่ได้เรียก tostring แต่เมทาเมธอด __tostring ยังคงยิงถ้าตารางมีหนึ่ง

พารามิเตอร์

params: Tuple

จํานวนอาร์กิวเมนต์ที่จะถูกเผยแพร่ใดๆ

ส่งค่ากลับ

()

rawequal

ตรวจสอบว่า v1 เท่ากับ v2 โดยไม่ต้องเรียกใช้ metamethods ใดๆ

พารามิเตอร์

v1: Variant

ตัวแปรแรกที่จะเปรียบเทียบ

v2: Variant

ตัวแปรที่สองที่จะเปรียบเทียบ

ส่งค่ากลับ

rawget

Variant

รับค่าจริงของ table[index] โดยไม่ต้องเรียกใช้ metamethods ใดๆ

พารามิเตอร์

ตารางที่จะอ้างอิง

index: Variant

ดัชนีที่จะได้รับจาก t .

ส่งค่ากลับ

Variant

rawlen

คืนความยาวของสตริงหรือตารางโดยไม่ต้องเรียกใช้ metamethods ใดๆ

พารามิเตอร์

ตารางที่จะอ้างอิง

ส่งค่ากลับ

rawset

ตั้งค่าค่าจริงของ table[index] เป็น value ที่กำหนดไว้โดยไม่ต้องเรียกใช้เมทาวิธีใดๆ

พารามิเตอร์

ตารางที่จะอ้างอิง

index: Variant

ดัชนีที่ต้องตั้งใน t เพื่อ value ที่กำหนด จะต้องแตกต่างจาก nil

value: Variant

ค่าที่จะตั้งเป็น index ที่กำหนดในตาราง t

ส่งค่ากลับ

require

Variant

ดำเนินการตามที่จัดหา ModuleScript และส่งคืนสิ่งที่ ModuleScript ส่งกลับ (โดยปกติเป็นตารางหรือฟังก์ชัน)หาก ModuleScript ยังไม่ได้รัน จะถูกดำเนินการ

หากให้เส้นทางสตริงแทน จะถูกแก้ไขครั้งแรกเป็น ModuleScript เมื่อเทียบกับสคริปที่เรียก require() ซึ่งจำลองการจัดเรียงความหมายแบบ Unix ของการแสดงออก Luau's require()ตัวอย่างเช่น แต่ละคู่ของ require() คำสั่งในตัวอย่างด้านล่างมีการโทรสองครั้งที่เทียบเท่าได้


-- "./" เทียบเท่ากับ script.Parent
require(script.Parent.ModuleScript)
require("./ModuleScript")
-- "../" เทียบเท่ากับ script.Parent.Parent
require(script.Parent.Parent.ModuleScript)
require("../ModuleScript")

โดยเฉพาะอย่างยิ่งความหมายของการแก้ไขของ require-by-string มีดังนี้:

  • เส้นทางสตริงต้องเริ่มด้วย ./ หรือ ../ ซึ่ง ./ เท่ากับ script.Parent และ ../ เท่ากับ script.Parent.Parent
  • หากเส้นทางที่แก้ไขชี้ไปที่ ที่ไม่ใช่ จะพยายามค้นหา ที่มีชื่อว่า หรือ เป็นพ่อแม่ของมันและใช้แทนหากมันมีอยู่
  • หาก ModuleScript ที่ต้องการไม่ปรากฏในเวลาที่ require() ถูกเรียก การโทรจะล้มเหลวและโยนข้อผิดพลาดคำอื่นๆ คือต้องการโดยสตริงไม่บล็อก: มันไม่ได้รอโดยนัยว่าจะมี ModuleScript ถูกสร้างขึ้น

เมื่อวัตถุการคืนถูกสร้างโดยการเรียกเริ่มต้น ครั้งแรก ของการเรียก ในอนาคต คำขอสำหรับเดียวกัน (ในด้านเดียวกับขอบเขตไคลเอนต์-เซิร์ฟเวอร์) จะไม่รันโค้ดอีกครั้งแทนที่จะให้การอ้างอิงถึง เดียวกัน วัตถุที่สร้างโดยการเรียกเริ่มต้น จะถูกจัดหาพฤติกรรมนี้ช่วยให้สามารถแบ่งปันค่าระหว่างสคริปต์ต่างๆ ได้ เนื่องจากการโทรหลายครั้ง require() จากสคริปต์ต่างๆ จะอ้างอิงถึงวัตถุที่ส่งคืนเดียวกันหากวัตถุที่ส่งคืนเป็นตาราง ค่าใดๆ ที่จัดเก็บไว้ภายในตารางจะถูกแชร์และเข้าถึงได้โดยสคริปต์ใดๆ ที่ต้องการ ModuleScript

ตามที่ระบุไว้ข้างต้น พฤติกรรม "การแบ่งปันวัตถุ" ไม่ข้ามขอบเขตไคลเอนต์-เซิร์ฟเวอร์ซึ่งหมายความว่าหาก เป็นที่เข้าถึงได้ทั้งสำหรับไคลเอนต์ และเซิร์ฟเวอร์ (เช่นโดยถูกวางไว้ใน ) และ ถูกเรียกจากทั้ง และ ด้วยเช่นกัน โค้ดใน จะถูกดำเนินการสองครั้ง และ จะได้รับวัตถุการคืนที่แตกต่างจากที่ได้รับโดย จากที่ได้รับโดย Errors: No errors found.

โปรดทราบว่าหาก ModuleScript ผู้ใช้ต้องการที่จะเรียกใช้มีการอัปโหลดไปยัง Roblox (โดยชื่อตัวแทนของตัวอย่างเป็น MainModule ) สามารถโหลดได้โดยใช้ฟังก์ชัน require() บน ID ทรัพยากรของ ModuleScript แต่เฉพาะบนเซิร์ฟเวอร์เท่านั้น

พารามิเตอร์

The ModuleScript ที่จะถูกดำเนินการเพื่อดึงค่ากลับที่มันให้หรือการอ้างอิงถึงหนึ่ง (เส้นทางสตริงหรือรหัสทรัพยากร)

ส่งค่ากลับ

Variant

สิ่งที่กลับมา ModuleScript (โดยปกติเป็นตารางหรือฟังก์ชัน)

select

คืนอาร์กิวเมนต์ทั้งหมดหลังจากหมายเลขอาร์กิวเมนต์ index หากเป็นลบ จะกลับจากจุดสิ้นสุดของรายการอาร์กิวเมนต์


print(select(2, "A", "B", "C")) --> B C
print(select(-1, "A", "B", "C")) --> C

หากอาร์กิวเมนต์ index ถูกตั้งค่าเป็น "#" จำนวนอาร์กิวเมนต์ที่ถูกส่งหลังจากการคืนจะเป็นจำนวน


print(select("#", "A", "B", "C")) --> 3

พารามิเตอร์

index: Variant

ดัชนีของอาร์กิวเมนต์ที่จะคืนอาร์กิวเมนต์ทั้งหมดหลังจากใน argsหากตั้งค่าเป็น "#" จำนวนของอาร์กิวเมนต์ที่ถูกส่งหลังจากส่งคืน

args: Tuple

tuple ของอาร์กิวเมนต์

ส่งค่ากลับ

setmetatable

ตั้งค่า metatable สำหรับโต๊ะที่กำหนด t เป็น newMetaหาก newMeta เป็น nil ตารางข้อมูลของ t จะถูกลบในที่สุดฟังก์ชันนี้จะคืนตาราง t ซึ่งถูกส่งให้กับมันหาก มีตารางที่มี วิธีการเรียกเก็บที่กำหนดไว้แล้ว การเรียกใช้นี้จะสร้างข้อผิดพลาด


local meta = {__metatable = "protected"}
local t = {}
setmetatable(t, meta) -- นี้ตั้งค่า metatable ของ t
-- ตอนนี้เรามีตาราง t ที่มี metatable หากเราพยายามที่จะเปลี่ยนมัน...
setmetatable(t, {}) --> Error: cannot change a protected metatable

พารามิเตอร์

ตารางที่จะตั้งค่า metatable ของ

newMeta: Variant

หาก nil , metatable ของตารางที่กำหนด t จะถูกลบออก มิฉะนั้น metatable ที่ตั้งไว้สำหรับตารางที่กำหนด t

ส่งค่ากลับ

tonumber

Variant

พยายามแปลง arg เป็นตัวเลขที่มีฐานที่กำหนดเพื่อแสดงค่าภายในหากไม่สามารถแปลงได้ ฟังก์ชันนี้จะคืน nil

ฐานอาจเป็นตัวเลขใดๆ ระหว่าง 2 และ 36 รวมถึงในฐานที่สูงกว่า 10 ตัวอักษร 'A' (ในรูปแบบทั้งบนหรือล่าง) แทนที่ 10, 'B' แทนที่ 11 และอื่นๆ ด้วย 'Z' แทนที่ 35ในฐานะ 10 (ค่าเริ่มต้น) ตัวเลขอาจมีส่วนทศนิยมและส่วนทศนิยมตัวเลขที่เลือกได้ในฐานอื่น ๆ เฉพาะตัวเลขไม่ลงนามจะได้รับการยอมรับ

หากสตริงเริ่มต้นด้วย 0x และฐานไม่ได้รับการจัดเตรียม 0x จะถูกตัดและฐานถือว่าเป็น 16 หรือหกเหลี่ยม


print(tonumber("1337")) --> 1337 (เชื่อว่าฐาน 10, ตัวเลข)
print(tonumber("1.25")) --> 1.25 (ฐาน 10 อาจมีส่วนทศนิยม)
print(tonumber("3e2")) --> 300 (ฐาน 10 อาจมีส่วนเอกซ์โปเนนต์ 3 × 10 ^ 2)
print(tonumber("25", 8)) --> 21 (ฐาน 8, แปด)
print(tonumber("0x100")) --> 256 (เชื่อว่าฐาน 16, หกตัวเลข)
print(tonumber("roblox")) --> nil (ไม่ได้เรียกข้อผิดพลาด)
-- เคล็ดลับ: ใช้กับการอ้างอิงถ้าคุณต้องการหมายเลขที่ไม่สามารถแปลงได้เพื่อเพิ่มข้อผิดพลาด
print(assert(tonumber("roblox"))) --> Error: assertion failed

พารามิเตอร์

arg: Variant

วัตถุที่จะแปลงเป็นตัวเลข

base: number

ฐานตัวเลขที่จะแปลง arg เป็น

ค่าเริ่มต้น: 10

ส่งค่ากลับ

Variant

tostring

รับอาร์กิวเมนต์ของประเภทใดก็ได้และแปลงเป็นสตริงในรูปแบบที่เหมาะสมสำหรับการควบคุมอย่างเต็มรูปแบบของวิธีการแปลงตัวเลขให้ใช้ string.formatหาก metatable ของ e มี metamethod __tostring แล้วจะถูกเรียกด้วย e ผลการค้นหา


local isRobloxCool = true
-- แปลง boolean เป็นสตริงแล้วรวมเข้าด้วยกัน:
print("Roblox is cool: " .. tostring(isRobloxCool)) --> Roblox is cool: true

พารามิเตอร์

e: Variant

วัตถุที่จะแปลงเป็นสตริง

ส่งค่ากลับ

type

คืนประเภทของอาร์กิวเมนต์เดียวที่มีรหัสเป็นข้อความผลลัพธ์ที่เป็นไปได้ของฟังก์ชันนี้คือ "nil" (สตริงไม่ใช่ค่า nil) "number" , "string" , "boolean" , "table" , "vector" , "function" , "thread" , "userdata" และ "buffer" .พริมิติ buffer และ vector เป็นการเพิ่มจาก Luau ไม่ใช่จาก Lua

พารามิเตอร์

v: Variant

วัตถุที่จะส่งคืนประเภท

ส่งค่ากลับ

unpack

Variant

คืนองค์ประกอบจากตารางที่กำหนดโดยค่าเริ่มต้น i คือ 1 และ j คือความยาวของ list ตามที่กำหนดโดยตัวประกอบความยาว

พารามิเตอร์

list: table

รายการขององค์ประกอบที่จะถูกแยกออก

ดัชนีขององค์ประกอบแรกที่จะแยกออก

ค่าเริ่มต้น: 1

ดัชนีขององค์ประกอบล่าสุดที่จะแยกออก

ค่าเริ่มต้น: #list

ส่งค่ากลับ

Variant

xpcall

ฟังก์ชันนี้คล้ายกับ pcall() ยกเว้นว่าคุณสามารถตั้งค่าตัวจัดการข้อผิดพลาดใหม่ได้

xpcall() เรียกฟังก์ชัน f ในโหมดป้องกันโดยใช้ err เป็นตัวจัดการข้อผิดพลาดและส่งรายการของอาร์กิวเมนต์ข้อผิดพลาดใดๆ ภายใน f จะไม่แพร่กระจาย; แทนที่, xpcall() จะจับข้อผิดพลาด, เรียกฟังก์ชัน err ด้วยวัตถุข้อผิดพลาดเดิม, และส่งรหัสสถานะกลับผลลัพธ์แรกคือรหัสสถานะ (เป็นบูลีน) ซึ่งเป็นจริงหากการโทรสำเร็จโดยไม่มีข้อผิดพลาดในกรณีนี้ xpcall() ยังคืนผลลัพธ์ทั้งหมดจากการโทรหลังจากผลลัพธ์แรกนี้ในกรณีที่เกิดข้อผิดพลาด xpcall() จะส่งคืนค่าเท็จบวกกับผลลัพธ์จาก err

ไม่เหมือนกับ pcall() , ฟังก์ชัน err จะเก็บบันทึกการติดตามของฟังก์ชัน f ซึ่งสามารถตรวจสอบได้โดยใช้ debug.info() หรือ debug.traceback()

พารามิเตอร์

ฟังก์ชันที่จะเรียกในโหมดป้องกัน

ฟังก์ชันที่จะใช้เป็นจัดการข้อผิดพลาดหาก xpcall จับข้อผิดพลาด

args: Tuple

ส่งค่ากลับ

Variant

คุณสมบัติ

ตารางที่แชร์ระหว่างสคริปทั้งหมดของระดับบริบทเดียวกัน

_VERSION

ตัวแปรระดับโลก (ไม่ใช่ฟังก์ชัน) ที่เก็บสตริงที่มีเวอร์ชันตัวแปลปัจจุบัน