Luau globals

Tampilkan yang Tidak Digunakan Lagi

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Berikut adalah daftar fungsi dan variabel yang bersifat asli untuk Luau.Fungsi ini dapat digunakan dalam instalasi standar dari kedua Luau dan Lua 5.1.4, meskipun ada beberapa perbedaan dalam cara beberapa dari mereka bekerja di Roblox.

Rangkuman

Fungsi

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

    Membuang kesalahan jika yang disediakan value diselesaikan menjadi false atau nil .

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

    Menghentikan eksekusi thread dan membuang kesalahan.

  • Kembalikan ukuran heap memori total dalam kilobyte.

  • getmetatable(t : Variant):Variant

    Kembalikan metabel dari tabel yang diberikan.

  • Kembalikan fungsi iterasi dan tabel untuk digunakan dalam loop for.

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

    Kembalikan kode yang disediakan sebagai fungsi yang dapat dieksekusi.

  • newproxy(addMetatable : boolean):userdata

    Membuat kosong userdata , dengan opsi untuk memiliki metabel.

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

    Fungsi iterasi untuk digunakan dalam loop.

  • Kembalikan fungsi iterasi dan tabel yang disediakan untuk digunakan dalam loop for .

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

    Menjalankan fungsi yang disediakan dan menangkap kesalahan yang dilemparkannya, mengembalikan keberhasilan fungsi dan hasilnya.

  • print(params : Tuple):()

    Mencetak semua nilai yang disediakan ke output.

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

    Kembalikan apakah v1 adalah sama dengan v2 , dengan melewati metode metode mereka.

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

    Mendapatkan nilai nyata dari table[index] , melewati metode metametode apa pun.

  • Kembalikan panjang string atau tabel, melewati metode metametode apa pun.

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

    Mengatur nilai nyata dari table[index] , melewati metode metametode apa pun.

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

    Kembalikan nilai yang dikembalikan oleh ModuleScript yang diberikan, menjalankannya jika belum dijalankan.

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

    Kembalikan semua argumen setelah indeks yang diberikan.

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

    Mengatur metabel tabel yang diberikan.

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

    Kembalikan nilai yang disediakan dikonversi menjadi angka, atau nil jika tidak mungkin.

  • tostring(e : Variant):string

    Kembalikan nilai yang disediakan dikonversi ke string, atau nil jika tidak mungkin.

  • type(v : Variant):string

    Kembalikan jenis dasar dari objek yang disediakan.

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

    Kembalikan semua elemen dari daftar yang diberikan sebagai tuple.

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

    Mirip dengan pcall() kecuali menggunakan penangani kesalahan khusus.

Properti

  • Meja yang dibagikan di antara semua skrip dari levelkonteks yang sama.

  • Variabel global yang menyimpan string yang berisi versi interpreter saat ini.

Fungsi

assert

Variant

Membuang kesalahan jika yang disediakan value adalah false atau nil. Jika asserpsi berhasil, ia akan mengembalikan semua nilai yang diberikan kepadanya.


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

Parameter

value: Variant

Nilai yang akan diklaim melawan.

errorMessage: string

Teks yang akan ditampilkan dalam kesalahan jika asumsi gagal.

Nilai Default: assertion failed!

Memberikan nilai

Variant

error

()

Mengakhiri fungsi terlindung terakhir yang dipanggil dan menghasilkan message sebagai pesan kesalahan.Jika fungsi yang berisi kesalahan tidak dipanggil dalam fungsi terlindung seperti pcall(), maka skrip yang memanggil fungsi akan berakhir.Fungsi kesalahan itu sendiri tidak pernah kembali dan bertindak seperti kesalahan skrip.

Argumen level menentukan cara mendapatkan posisi kesalahan.Dengan level 1 (yang default), posisi kesalahan adalah di mana fungsi kesalahan dipanggil.Level 2 menunjukkan kesalahan ke tempat fungsi yang memanggil kesalahan dipanggil; dan seterusnya.Melewati level 0 menghindari penambahan informasi posisi kesalahan ke pesan.

Parameter

message: Variant

Pesan kesalahan untuk ditampilkan.

level: number

Tingkat informasi yang harus dicetak. Nilai default adalah 1.

Nilai Default: 1

Memberikan nilai

()

gcinfo

Kembalikan ukuran heap memori total dalam kilobyte.Angka mencerminkan konsumsi heap saat ini dari perspektif sistem operasi, yang naik turun seiring dengan pembebasan objek oleh pengumpul sampah.

Memberikan nilai

getmetatable

Variant

Kembalikan metabel dari tabel yang diberikan t jika memiliki satu, jika tidak mengembalikan nil .Jika t memiliki metabel, dan metode __metatable metametode atur, ia akan mengembalikan nilai itu sebagai gantinya.


-- Menunjukkan getmetatable:
local meta = {}
local t = setmetatable({}, meta)
print(getmetatable(t) == meta) --> benar
-- Buat metabel asli tidak dapat dipulihkan dengan mengatur metode __metabel:
meta.__metatable = "protected"
print(getmetatable(t)) --> protected

Parameter

t: Variant

Objek untuk mengambil metabel dari.

Memberikan nilai

Variant

ipairs

Kembalikan tiga nilai: fungsi iterasi, tabel t dan nomor 0.Setiap kali fungsi iterator dipanggil, ia mengembalikan pas nilai indeks berikutnya dalam tabel.Saat digunakan dalam loop umum, nilai pengembalian dapat digunakan untuk mengulangi setiap indeks numerik di tabel:


local fruits = {"apples", "oranges", "kiwi"}
for index, fruit in ipairs(fruits) do
print(index, fruit) --> 1 apel, 2 jeruk, 3 kiwi, dll...
end

Parameter

Meja yang elemennya harus diulangi.

Memberikan nilai

loadstring

Variant

Memuat kode Luau dari string dan mengembalikannya sebagai fungsi.

Tidak seperti Lua standar 5.1, Luau Roblox tidak dapat memuat kode byte yang dikompilasi menggunakan loadstring() .

loadstring() dimatikan secara default. Untuk panduan tentang cara mengaktifkannya, lihat ServerScriptService .

PERINGATAN: Metode ini menonaktifkan optimisasi Luau tertentu pada fungsi yang dikembalikan.Peringatan ekstrem harus diambil saat menggunakan loadstring() ; jika niat Anda adalah memungkinkan pengguna menjalankan kode di pengalaman Anda, pastikan untuk melindungi lingkungan fungsi yang dikembalikan dengan menggunakan getfenv() dan setfenv() .

Parameter

contents: string

String yang ditentukan untuk dimuat sebagai kode Luau.

chunkname: string

Nama potongan opsional untuk pesan kesalahan dan informasi debug. Jika tidak ditentukan, Luau menggunakan string contents.

Memberikan nilai

Variant

newproxy

Membuat kosong userdata , dengan opsi untuk memiliki metabel.

Parameter

addMetatable: boolean
Nilai Default: false

Memberikan nilai

Kembalikan fungsi iterasi, tabel yang disampaikan t , dan nil , sehingga konstruksi akan mengulangi semua pasangan kunci/nilai dari tabel itu saat digunakan dalam loop umum for :


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

Parameter

Tabel array atau kamus untuk diulang.

Memberikan nilai

pcall

Memanggil fungsi func dengan argumen yang diberikan dalam mode terlindungi.Ini berarti bahwa setiap kesalahan di dalam func tidak menyebar; sebaliknya, pcall() menangkap kesalahan dan mengembalikan kode status.Hasil pertamanya adalah kode status ( boolean ), yang benar jika panggilan berhasil tanpa kesalahan.Dalam kasus seperti itu, pcall() juga mengembalikan semua hasil dari panggilan, setelah hasil pertama ini.Jika terjadi kesalahan, pcall() kembali palsu ditambah pesan kesalahan.

Parameter

func: function

Fungsi yang harus dipanggil dalam mode terlindungi.

args: Tuple

Argumen untuk dikirim ke func saat mengeksekusi.

Memberikan nilai

Variant

print

()

Menerima berapa pun argumen, dan mencetak nilai mereka ke output. print tidak dimaksudkan untuk output yang diformat, tetapi hanya sebagai cara cepat untuk menampilkan nilai, biasanya untuk debugging.Untuk output berformat, gunakan string.format() .Di Roblox, print tidak memanggil tostring , tetapi metode metamode __tostring masih menyala jika tabel memiliki satu.

Parameter

params: Tuple

Setiap jumlah argumen yang akan dihasilkan.

Memberikan nilai

()

rawequal

Memeriksa apakah v1 sama dengan v2 , tanpa memanggil metode metametode apa pun.

Parameter

v1: Variant

Variabel pertama untuk dibandingkan.

v2: Variant

Variabel kedua untuk dibandingkan.

Memberikan nilai

rawget

Variant

Mendapatkan nilai nyata dari table[index] , tanpa memanggil metode metametode apa pun.

Parameter

Tabel yang akan di referensikan.

index: Variant

Indeks untuk mendapatkan dari t .

Memberikan nilai

Variant

rawlen

Kembalikan panjang string atau tabel, tanpa memanggil metode metametode apa pun.

Parameter

Tabel yang akan di referensikan.

Memberikan nilai

rawset

Atur nilai nyata dari table[index] ke value yang ditentukan, tanpa memanggil metode metametode apa pun.

Parameter

Tabel yang akan di referensikan.

index: Variant

Indeks untuk disetel di t ke value tertentu. Harus berbeda dari nil .

value: Variant

Nilai yang harus ditetapkan ke index tertentu di tabel t .

Memberikan nilai

require

Variant

Menjalankan yang disediakan ModuleScript dan mengembalikan apa yang dikembalikan ModuleScript (biasanya meja atau fungsi).Jika ModuleScript belum dijalankan, itu akan dieksekusi.

Jika rute string diberikan sebagai gantinya, pertama-tama dipecahkan menjadi ModuleScript relatif terhadap skrip yang memanggil require() , meniru semantik Unix-seperti dari ekspresi Luau's require() .Sebagai contoh, setiap pasangan require() ekspresi dalam contoh di bawah ini berisi dua panggilan fungsional yang sama.


-- /" adalah setara dengan script.Parent
require(script.Parent.ModuleScript)
require("./ModuleScript")
-- /"..." setara dengan script.Parent.Parent
require(script.Parent.Parent.ModuleScript)
require("../ModuleScript")

Secara khusus, semantik resolusi require-by-string adalah sebagai berikut:

  • Jalur string harus dimulai dengan ./ atau ../, di mana ./ sama dengan script.Parent dan ../ sama dengan script.Parent.Parent.
  • Jika jalur yang diselesaikan menunjuk ke Instance yang bukan ModuleScript , require() akan mencoba menemukan ModuleScript yang disebut Init atau init yang diparentkan ke Instance dan menggunakannya sebagai gantinya, jika ada.
  • Jika ModuleScript yang diinginkan tidak hadir saat require() dipanggil, panggilan akan gagal dan menyebabkan kesalahan.Dengan kata lain, require-by-string tidak memblokir: ia tidak secara implisit menunggu ModuleScript untuk dibuat.

Setelah objek pengembalian dibuat oleh sebuah awal require() panggilan dari ModuleScript , panggilan masa depan require() untuk hal yang sama ModuleScript (di sisi yang sama dari batas klien-server) tidak akan menjalankan kode lagi.Sebagai gantinya, referensi ke objek pengembalian yang sama dibuat oleh panggilan awal akan disediakan.Perilaku ini memungkinkan berbagi nilai di antara berbagai skrip, karena banyak panggilan require() dari berbagai skrip akan merujuk pada objek yang sama yang dikembalikan.Jika objek yang dikembalikan adalah tabel, semua nilai yang disimpan dalam tabel dibagikan dan diakses oleh setiap skrip yang memerlukan bahwa ModuleScript .

Seperti disebutkan di atas, perilaku "berbagi objek" tidak melintasi batas klien-server.Ini berarti bahwa jika ModuleScript adalah akses ke kedua klien dan server (seperti ditempatkan di ReplicatedStorage ) dan require() dipanggil dari kedua LocalScript dan Script , kode di ModuleScript akan dijalankan dua kali, dan LocalScript akan menerima objek pengembalian yang berbeda dari yang diterima oleh Script .

Perhatikan juga bahwa jika ModuleScript pengguna ingin menjalankan telah diunggah ke Roblox (dengan nama instansi menjadi MainModule ), itu dapat dimuat menggunakan fungsi require() pada ID aset dari ModuleScript , meskipun hanya di server.

Parameter

The ModuleScript yang akan dieksekusi untuk mengambil nilai pengembalian yang disediakannya, atau referensi ke satu (string jalur atau ID aset).

Memberikan nilai

Variant

Apa yang dikembalikan ModuleScript (biasanya meja atau fungsi).

select

Kembalikan semua argumen setelah nomor argumen index. Jika negatif, itu akan kembali dari akhir daftar argumen.


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

Jika argumen index diatur ke "#", jumlah argumen yang diteruskan setelah dikembalikan.


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

Parameter

index: Variant

Indeks argumen untuk mengembalikan semua argumen setelah di args .Jika diatur ke "#" , jumlah argumen yang dikirim setelah dikembalikan.

args: Tuple

Sebuah tuple argumen.

Memberikan nilai

setmetatable

Tetapkan metabel untuk tabel yang diberikan t ke newMeta.Jika newMeta adalah nil , metabel dari t dihapus.Akhirnya, fungsi ini mengembalikan tabel t yang dikirim kepadanya.Jika t sudah memiliki metabel yang memiliki __metatable metode metametode, memanggil ini pada t menimbulkan kesalahan.


local meta = {__metatable = "protected"}
local t = {}
setmetatable(t, meta) -- Ini mengatur metabel t
-- Sekarang kami memiliki tabel, t, dengan metabel. Jika kami mencoba mengubahnya...
setmetatable(t, {}) --> Error: cannot change a protected metatable

Parameter

Tabel untuk mengatur metabel dari.

newMeta: Variant

Jika nil , metabel dari tabel yang diberikan t dihapus. Jika tidak, metabel untuk disetel untuk tabel yang diberikan t .

Memberikan nilai

tonumber

Variant

Upaya untuk mengubah arg menjadi angka dengan basis yang ditentukan untuk menafsirkan nilai di dalamnya.Jika tidak dapat dikonversi, fungsi ini mengembalikan nil .

Dasarnya bisa menjadi bilangan bulat antara 2 dan 36, termasuk.Di basis di atas 10, huruf 'A' (dalam kasus atas atau bawah) mewakili 10, 'B' mewakili 11, dan seterusnya, dengan 'Z' yang mewakili 35.Di basis 10 (yang default), angka mungkin memiliki bagian desimal, serta bagian eksponensial opsional.Di basis lain, hanya integar tak ditandai yang diterima.

Jika string dimulai dengan 0x dan basis tidak disediakan, 0x dipotong dan basis dianggap menjadi 16, atau heksadesimal.


print(tonumber("1337")) --> 1337 (mengasumsikan basis 10, desimal)
print(tonumber("1.25")) --> 1.25 (basis 10 mungkin memiliki bagian desimal)
print(tonumber("3e2")) --> 300 (basis 10 mungkin memiliki bagian eksponen, 3 × 10 ^ 2)
print(tonumber("25", 8)) --> 21 (basis 8, oktal)
print(tonumber("0x100")) --> 256 (mengasumsikan basis 16, hexadecimal)
print(tonumber("roblox")) --> nol (tidak menimbulkan kesalahan)
-- Tip: gunakan dengan asert jika Anda ingin nomor yang tidak dapat dikonversi untuk menghasilkan kesalahan
print(assert(tonumber("roblox"))) --> Error: assertion failed

Parameter

arg: Variant

Objek yang akan dikonversi menjadi angka.

base: number

Dasar numerik untuk mengkonversi arg menjadi.

Nilai Default: 10

Memberikan nilai

Variant

tostring

Menerima argumen dari jenis apa pun dan mengubahnya menjadi string dalam format yang wajar.Untuk kontrol lengkap tentang cara angka dikonversi, gunakan string.format.Jika metabel dari e memiliki metode metametode __tostring, maka akan dipanggil dengan e sebagai satu-satunya argumen dan akan mengembalikan hasilnya.


local isRobloxCool = true
-- Konversi boolean ke string lalu gabungkan:
print("Roblox is cool: " .. tostring(isRobloxCool)) --> Roblox is cool: true

Parameter

e: Variant

Objek yang akan dikonversi menjadi string.

Memberikan nilai

type

Kembalikan jenis argumennya yang hanya, dikodekan sebagai string.Hasil yang mungkin dari fungsi ini adalah "nil" (sebuah string, bukan nilai nil), "number" , "string" , "boolean" , "table" , "vector" , "function" , "thread" , "userdata" , dan "buffer" .Primitif buffer dan vector adalah tambahan dari Luau, bukan dari Lua.

Parameter

v: Variant

Objek untuk mengembalikan jenis.

Memberikan nilai

unpack

Variant

Kembalikan elemen dari tabel yang diberikan.Secara default, i adalah 1 dan j adalah panjang dari list , seperti yang didefinisikan oleh operator panjang.

Parameter

list: table

Daftar elemen yang akan dibuka.

Indeks elemen pertama untuk dibongkar.

Nilai Default: 1

Indeks elemen terakhir untuk dibongkar.

Nilai Default: #list

Memberikan nilai

Variant

xpcall

Fungsi ini mirip dengan pcall() , kecuali Anda dapat menetapkan penangani kesalahan baru.

xpcall() memanggil fungsi f dalam mode terlindungi, menggunakan err sebagai penangani kesalahan, dan mengirimkan daftar argumen.Kesalahan apa pun di dalam f tidak menyebar; sebaliknya, xpcall() menangkap kesalahan, memanggil fungsi err dengan objek kesalahan asli, dan men返ikan kode status.Hasil pertamanya adalah kode status ( boolean ), yang benar jika panggilan berhasil tanpa kesalahan.Dalam kasus ini, xpcall() juga mengembalikan semua hasil dari panggilan, setelah hasil pertama ini.Jika terjadi kesalahan, xpcall() kembali palsu ditambah hasil dari err .

Tidak seperti pcall() , fungsi err menyimpan jejak tumpukan fungsi f , yang dapat diperiksa menggunakan debug.info() atau debug.traceback() .

Parameter

Fungsi yang harus dipanggil dalam mode terlindungi.

Fungsi yang akan digunakan sebagai penangan kesalahan jika xpcall menangkap kesalahan.

args: Tuple

Memberikan nilai

Variant

Properti

Meja yang dibagikan di antara semua skrip dari levelkonteks yang sama.

_VERSION

Variabel global (bukan fungsi) yang menyimpan string yang berisi versi interpreter saat ini.