Luau globals
*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.
Rangkuman
Fungsi
Membuang kesalahan jika yang disediakan value diselesaikan menjadi false atau nil .
Menghentikan eksekusi thread dan membuang kesalahan.
Kembalikan ukuran heap memori total dalam kilobyte.
Kembalikan metabel dari tabel yang diberikan.
Kembalikan fungsi iterasi dan tabel untuk digunakan dalam loop for.
Kembalikan kode yang disediakan sebagai fungsi yang dapat dieksekusi.
Membuat kosong userdata , dengan opsi untuk memiliki metabel.
Fungsi iterasi untuk digunakan dalam loop.
Kembalikan fungsi iterasi dan tabel yang disediakan untuk digunakan dalam loop for .
Menjalankan fungsi yang disediakan dan menangkap kesalahan yang dilemparkannya, mengembalikan keberhasilan fungsi dan hasilnya.
Mencetak semua nilai yang disediakan ke output.
Kembalikan apakah v1 adalah sama dengan v2 , dengan melewati metode metode mereka.
Mendapatkan nilai nyata dari table[index] , melewati metode metametode apa pun.
Kembalikan panjang string atau tabel, melewati metode metametode apa pun.
Mengatur nilai nyata dari table[index] , melewati metode metametode apa pun.
Kembalikan nilai yang dikembalikan oleh ModuleScript yang diberikan, menjalankannya jika belum dijalankan.
Kembalikan semua argumen setelah indeks yang diberikan.
Mengatur metabel tabel yang diberikan.
Kembalikan nilai yang disediakan dikonversi menjadi angka, atau nil jika tidak mungkin.
Kembalikan nilai yang disediakan dikonversi ke string, atau nil jika tidak mungkin.
Kembalikan jenis dasar dari objek yang disediakan.
Kembalikan semua elemen dari daftar yang diberikan sebagai tuple.
Mirip dengan pcall() kecuali menggunakan penangani kesalahan khusus.
Fungsi
assert
Membuang kesalahan jika yang disediakan value adalah false atau nil. Jika asserpsi berhasil, ia akan mengembalikan semua nilai yang diberikan kepadanya.
local product = 90 * 4assert(product == 360, "Oh dear, multiplication is broken")-- The line above does nothing, because 90 times 4 is 360
Parameter
Nilai yang akan diklaim melawan.
Teks yang akan ditampilkan dalam kesalahan jika asumsi gagal.
Memberikan nilai
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
Pesan kesalahan untuk ditampilkan.
Tingkat informasi yang harus dicetak. Nilai default adalah 1.
Memberikan nilai
getmetatable
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
Objek untuk mengambil metabel dari.
Memberikan nilai
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) doprint(index, fruit) --> 1 apel, 2 jeruk, 3 kiwi, dll...end
Parameter
Meja yang elemennya harus diulangi.
loadstring
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
Memberikan nilai
next
Kembalikan pasangan kunci/nilai pertama di array.Jika argumen lastKey diberikan maka akan mengembalikan elemen berikutnya dalam array berdasarkan kunci yang disediakan.Pesanan di mana indeks diuraikan tidak ditentukan, bahkan untuk indeks numerik.Untuk melintasi tabel dalam urutan numerik, gunakan numerik untuk loop atau ipairs .
Perilaku berikutnya tidak didefinisikan jika, selama penjelajahan, Anda menetapkan nilai apa pun ke bidang yang tidak ada di tabel.Namun, Anda dapat memodifikasi bidang yang ada.Secara khusus, Anda dapat menghapus bidang yang ada.
Parameter
배열 yang akan dilintasi. The array to be traversed.
Kunci terakhir yang sebelumnya diambil dari panggilan ke berikutnya.
Memberikan nilai
pairs
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) doprint(name .. " has score: " .. score)end
Parameter
Tabel array atau kamus untuk diulang.
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
Memberikan nilai
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
Setiap jumlah argumen yang akan dihasilkan.
Memberikan nilai
rawget
Mendapatkan nilai nyata dari table[index] , tanpa memanggil metode metametode apa pun.
Parameter
Tabel yang akan di referensikan.
Indeks untuk mendapatkan dari t .
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.
Indeks untuk disetel di t ke value tertentu. Harus berbeda dari nil .
Nilai yang harus ditetapkan ke index tertentu di tabel t .
Memberikan nilai
require
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.Parentrequire(script.Parent.ModuleScript)require("./ModuleScript")-- /"..." setara dengan script.Parent.Parentrequire(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
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 Cprint(select(-1, "A", "B", "C")) --> C
Jika argumen index diatur ke "#", jumlah argumen yang diteruskan setelah dikembalikan.
print(select("#", "A", "B", "C")) --> 3
Parameter
Indeks argumen untuk mengembalikan semua argumen setelah di args .Jika diatur ke "#" , jumlah argumen yang dikirim setelah dikembalikan.
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.
Jika nil , metabel dari tabel yang diberikan t dihapus. Jika tidak, metabel untuk disetel untuk tabel yang diberikan t .
Memberikan nilai
tonumber
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 kesalahanprint(assert(tonumber("roblox"))) --> Error: assertion failed
Parameter
Objek yang akan dikonversi menjadi angka.
Dasar numerik untuk mengkonversi arg menjadi.
Memberikan nilai
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
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
Objek untuk mengembalikan jenis.
Memberikan nilai
unpack
Kembalikan elemen dari tabel yang diberikan.Secara default, i adalah 1 dan j adalah panjang dari list , seperti yang didefinisikan oleh operator panjang.
Parameter
Memberikan nilai
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
Memberikan nilai
Properti
_G
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.