Luau globals
*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.
Özet
İşlevler
Verilen value 'nin çözümü false veya nil olursa bir hata atar.
İşlemi durdurur ve bir hata atar.
Toplam bellek yığını boyutunu kilobayt olarak döndürür.
Verilen tablonun metatable'ini döndürür.
Bir döngü içinde kullanılmak üzere bir döngü işlevi ve tablo döndürür.
Verilen kodu yürütülebilir bir işlev olarak döndürür.
Boş bir userdata oluşturur ve bir masaya sahip olma seçeneği ile.
Döngülerde kullanılacak bir döngü işlevi.
Bir for döngüsünde kullanılmak üzere bir döngü işlevi ve sağlanan tabloyu döndürür.
Verilen işlevi çalıştırır ve attığı herhangi bir hata yakalar, işlevin başarısını ve sonuçlarını geri döndürür.
Tüm sağlanan değerleri çıkıya basar.
v1 'nin v2 'ye eşit olup olmadığını döndürür, metodlarını atlayarak.
Herhangi bir metodu atlayarak table[index] 'nin gerçek değerini alır.
Herhangi bir metodu atlayarak dize veya tablonun uzunluğunu döndürür.
Herhangi bir metodu atlayarak table[index] 'nin gerçek değerini ayarlar
Verilen ModülScript tarafından döndürülen değeri geri verir ve henüz çalıştırılmadıysa çalıştırır.
Verilen indeksten sonra tüm argümanları döndürür.
Verilen tablonun metatable'ini ayarlar.
Verilen değeri bir sayıya dönüştürerek geri verir veya imkansızsa nil .
Verilen değeri bir dizidönüştürülmüş olarak veya imkansızsa nil döndürür.
Verilen nesnenin temel türünü döndürür.
Verilen listeden tüm elemanları bir tupl olarak döndürür.
Özel bir hata elektörü kullanması dışında pcall() benzer.
İşlevler
assert
Verilen value eğer false veya nil ise bir hata atar. İddia geçerse, tüm geçtiği değerleri geri verir.
local product = 90 * 4assert(product == 360, "Oh dear, multiplication is broken")-- The line above does nothing, because 90 times 4 is 360
Parametreler
Karşı iddia edilecek değer.
İddia başarısız olursa hata içinde gösterilecek metin.
Dönüşler
error
Çağrılan son korunan işlevi sonlandırır ve message bir hata mesajı olarak çıkar.Hata içeren işlev korunan bir işlevde çağrılmazsa, işlevi çağıran kod sona erer. pcall()Hata işlevinin kendisi asla geri dönmez ve bir senaryo hata gibi davranır.
The level argümanı, hata konumunu nasıl alacağını belirtir.Seviye 1 (Varsayılan) ile, hata pozisyonu hata işlevinin çağrıldığı yerdir.Seviye 2, hatayı çağıran işlevin nereye çağrıldığını işaret eder; ve böylece.Bir seviye 0 geçmek, mesaja hata konum bilgisi eklenmesini engeller.
Parametreler
Görüntülenecek hata mesajı.
Basılması gereken bilgi seviyesi. Varsayılan 1.
Dönüşler
getmetatable
Verilen tablonun metatable'ini döndürür t eğer bir tane varsa, aksi takdirde nil döndürür.Eğer t bir metatabele sahipse ve __metatable metodu ayarlanmışsa, bu değeri yerine geri döndürür.
-- getmetatable'i göster:local meta = {}local t = setmetatable({}, meta)print(getmetatable(t) == meta) --> doğru-- Orijinal metatablonun geri alınamaz olmasını sağlamak için __metatable metodunu ayarlayın:meta.__metatable = "protected"print(getmetatable(t)) --> protected
Parametreler
Metatable'ı almak için alınacak nesne.
Dönüşler
ipairs
Üç değer döndürür: bir döngü işlevi, tablo t ve sayı 0 .Iteratör işlevi her çağrıldığında, tabloda bir sonraki sayısal indeks değeri çiftini döndürür.Genel bir for döngüsünde kullanıldığında, döndürme değerleri tablodaki her sayısal indeks üzerinde döngü yapmak için kullanılabilir:
local fruits = {"apples", "oranges", "kiwi"}for index, fruit in ipairs(fruits) doprint(index, fruit) --> 1 elma, 2 portakal, 3 kivi, vs...end
Parametreler
Öğeleri döngülenmesi gereken bir tablo.
loadstring
Bir dizeden Luau kodunu yükler ve bunu bir işlev olarak döndürür.
Standart Lua 5.1'den farklı olarak, Roblox'un Luau'su loadstring() kullanarak derlenmiş kodu yükleyemez.
loadstring() varsayılan olarak devre dışıdır. Bunu etkinleştirmenin yolundaki rehberlik için, bakın ServerScriptService .
UYARI: Bu yöntem, döndürülen işlev üzerinde belirli Luau optimizasyonlarını devre dışı bırakır.Aşırı dikkat, loadstring() kullanırken alınmalıdır; eğer kullanıcıların deneyiminizde kod yürütmesine izin vermek istiyorsanız, getfenv() ve setfenv() kullanarak döndürülen işlevin çevresini korumak için emin olun.
Parametreler
Dönüşler
next
Dizideki ilk anahtar/değer çiftini döndürür.Bir lastKey argümanı belirtildiğinde, verilen anahtara dayanarak dizideki bir sonraki elemanı döndürür. indekslerin sıralandığı sıra sayısal indeksler için bile belirtilmez.Sayısal sırayla bir tabloyu gezmek için, döngü için sayısal veya ipairs kullanın.
Sonraki davranış, gezinti sırasında masada mevcut olmayan bir alana herhangi bir değer atarsanız tanımlanmaz.Ancak, mevcut alanları değiştirebilirsiniz.Özellikle, mevcut alanları temizleyebilirsiniz.
Parametreler
Gezilecek dizi.
Daha önce bir sonrakine yapılan bir çağrıdan alınan son anahtar.
Dönüşler
pairs
Bir döngü işlevi döndürür, geçirilen tablo t ve nil , böylece inşaat, genel bir for döngüsünde kullanıldığında o tablonun tüm anahtar/değer çiftleri üzerinde dönecektir:
local scores = {["John"] = 5,["Sally"] = 10}for name, score in pairs(scores) doprint(name .. " has score: " .. score)end
Parametreler
Döngüye geçilecek bir dizi veya sözlük tablosu.
pcall
Fonksiyonu func.Bu, func içindeki herhangi bir hata yayılmadığını gösterir; bunun yerine, pcall() hata yakalar ve bir durum kodu döndürür.İlk sonucu durum kodudur (booleen), ki bu başarılı bir çağrı yapılırsa hata olmadan doğrudur.Bu durumda, pcall() da bu ilk sonuçtan sonra tüm çağrı sonuçlarını döndürür.Herhangi bir hata durumunda, pcall() yanlış döndürür ve hata mesajı ekler.
Parametreler
Dönüşler
Herhangi bir sayıda argüman alır ve değerlerini çıkıya basar.print biçimlendirilmiş çıkış için tasarlanmadı, ancak genellikle yalnızca bir değeri göstermek için hızlı bir yol, tipik olarak depurmanız için.Biçimlendirilmiş bir çıkış için, string.format() kullanın.Roblox'ta, print çağrılmaz tostring , ancak tabloda bir tane varsa __tostring metod hala ateşlenir.
Parametreler
Çıkarılacak herhangi bir sayıda argüman.
Dönüşler
rawget
Herhangi bir metod çağrımadan table[index] 'nin gerçek değerini alır.
Parametreler
Referans edilecek tablo.
t 'den alınacak indeks.
Dönüşler
rawset
Gerçek değeri table[index] 'yi belirli bir value 'a ayarlar, herhangi bir metod çağırmadan.
Parametreler
Referans edilecek tablo.
Belirlenen bir t için ayarlanacak indeks value. nil 'dan farklı olmalıdır.
Tablo t 'de belirtilen bir değere ayarlanacak değer. index .
Dönüşler
require
Verilen ModuleScript çalıştırır ve ModuleScript döndürdüğü şeyi geri verir (genellikle bir tablo veya bir işlev).Eğer ModuleScript henüz çalıştırılmadıysa, çalıştırılacaktır.
Bunun yerine bir dize yolu sağlanırsa, önce , Luau'nun ifadesinin Unix benzeri mantığını taklit eden bir şekilde çözülür.Örneğin, aşağıdaki örnekteki her bir çift require() ifade işlevsel olarak eşit iki çağrı içerir.
-- ./" senaryo.Parent ile eşdeğerdirrequire(script.Parent.ModuleScript)require("./ModuleScript")-- ../" senaryoya eşdeğerdir script.Parent.Parentrequire(script.Parent.Parent.ModuleScript)require("../ModuleScript")
Özellikle, require-by-string'in çözüm mantığı şöyledir:
- Dize yolları ya ./ ya da ../ ile başlamalıdır, where ./ eşdeğerdir script.Parent ve ../ eşdeğerdir script.Parent.Parent.
- Çözülen yol, olmayan bir işaret ediyorsa, bunun adlı bir ebeveynine sahip olmasını ve onu kullanmasını deneyecektir, eğer varsa.
- Eğer talep edilen şu anda çağrıldığında mevcut değilse, çağrı başarısız olur ve bir hata atar.Diğer bir deyişle, require-by-string engellemez: implisit olarak bir ModuleScript oluşturulmasını beklemiyor.
Geri dönüş nesnesi bir ilk çağrısı tarafından oluşturulduktan sonra, gelecekte aynı (client-server sınırının aynı tarafında) aynı kodu tekrar çalıştırmayacaktır.Bunun yerine, başlangıç çağrısı tarafından oluşturulan aynı geri dönüş referansı verilecektir.Bu davranış, farklı senaryolardaki değerlerin paylaşılmasına izin verir, çünkü çeşitli senaryolardan gelen çok sayıda require() çağrı aynı döndürülen nesneyi referans alacaktır.Geri döndürülen nesne bir tabloysa, tabloda depolanan herhangi bir değer ModuleScript gerektiren herhangi bir senaryo tarafından paylaşılır ve erişilebilir.
Yukarıda belirtildiği gibi, "objeleri paylaşma" davranışı istemci-sunucu sınırını geçmez.Bu, bir 'nin hem istemci hem de sunucuya (örneğin, içine yerleştirilerek) erişilebilir olması ve 'nin hem bir 'dan hem de bir 'dan alınan kod iki kez çalıştırılacağı ve 'nun da alacağı farklı bir dönüş nesnesi alacağı anlamına gelir.
Ayrıca, eğer kullanıcının çalıştırmak istediği eğer Roblox'a yüklendi (durumadı olarak), sadece sunucuda yüklenebilir, ancak sadece sunucuda.
Parametreler
Verdiği dönüş değerini almak için yürütülecek ModuleScript veya bir referans (bir dize yolu veya varlık kimliği) birine işaret eden.
Dönüşler
Ne döndürüldü ModuleScript (genellikle bir tablo veya bir işlev).
select
Tüm argümanları index argüman sayısından sonra döndürür. Eğer negatifse, argüman listesinin sonundan geri dönecektir.
print(select(2, "A", "B", "C")) --> B Cprint(select(-1, "A", "B", "C")) --> C
Eğer index argümanı "#" olarak ayarlanırsa, ondan sonra geçen argüman sayısı.
print(select("#", "A", "B", "C")) --> 3
Parametreler
args sonra tüm argümanları geri döndürmek için argümanın indeksi.Eğer "#" olarak ayarlanmışsa, ondan sonra geçen argüman sayısı.
Bir dizi argüman.
Dönüşler
setmetatable
Verilen tablo için metatable'i olarak ayarlar.Eğer newMeta``nil ise, t 'in metatablosu kaldırılır.Son olarak, bu işlev ona geçen tablo t 'yi geri döndürür.Eğer t zaten bir metatablosu varsa, __metatable metodunun karşılaştığı t bir metod yoksa, bu çağrı bir hata yükseltir.
local meta = {__metatable = "protected"}local t = {}setmetatable(t, meta) -- Bu, t'nin metatableini ayarlar-- Artık bir tablo, t, bir metatable ile var. Eğer onu değiştirmeye çalışırsak...setmetatable(t, {}) --> Error: cannot change a protected metatable
Parametreler
Metatable'ı ayarlamak için tablo.
Eğer , verilen tablonun metatablosu kaldırılır. Aksi takdirde, verilen tablo için ayarlanacak metatablo .
Dönüşler
tonumber
Değeri içinde yorumlamak için belirtilen bir temel ile arg'i bir sayıya dönüştürme girişimleri.Dönüştürülemezse, bu işlev nil döndürür.
Temel 2 ile 36 arasındaki herhangi bir tamsayı olabilir, dahil.10'dan fazla üslerde, harf 'A' (üst veya alttaki durumda) 10'u temsil eder, 'B' 11'i temsil eder ve öyle de devam eder, 'Z' 35'i temsil eder.Temel 10'da (Varsayılan), sayının bir ondalık kısmı ve seçici bir üs kısmı olabilir.Diğer tablolarda, yalnızca imzalanmamış sayılar kabul edilir.
Bir dize 0x ile başlar ve bir temel sağlanmazsa, 0x kırpılır ve temelin 16 veya on altı olması varsayılır.
print(tonumber("1337")) --> 1337 (taban 10, ondalık varsayımı)print(tonumber("1.25")) --> 1.25 (temel 10'un ondalık bölümleri olabilir)print(tonumber("3e2")) --> 300 (temel 10 üs bölümü olabilir, 3 × 10 ^ 2)print(tonumber("25", 8)) --> 21 (temel 8, oktal)print(tonumber("0x100")) --> 256 (temel 16, altıgen olarak varsayılır)print(tonumber("roblox")) --> nil (bir hata yükseltmiyor)-- İpucu: dönüştürülemez sayıların bir hata yükseltmesini istiyorsanız, ifade ile kullanınprint(assert(tonumber("roblox"))) --> Error: assertion failed
Parametreler
Bir sayıya dönüştürülecek nesne.
arg dönüştürmek için sayısal taban.
Dönüşler
tostring
Herhangi bir türden bir argüman alır ve makul bir biçimde bir dizeye dönüştürür.Sayıların nasıl dönüştürüldüğünün tam kontrolü için, dizi.format'ı kullanın.e 'nin metatablosunda bir __tostring metodu varsa, tek argüman olarak e ile çağrılacak ve sonuç döndürülecektir.
local isRobloxCool = true-- Booleen'i bir dizeye dönüştür ve ardından birleştir:print("Roblox is cool: " .. tostring(isRobloxCool)) --> Roblox is cool: true
Parametreler
Bir dizidönüştürülecek nesne.
Dönüşler
type
Tek argümanının türünü, bir diziolarak kodlanmış olarak döndürür.Bu işlevin olası sonuçları "nil" (bir dizi, değer nil değil), "number" , "string" , "boolean" , "table" , "vector" , "function" , "thread" , "userdata" , ve "buffer" .The buffer ve vector primitifleri Luau'dan değil, Lua'dan eklemelerdir.
Parametreler
Türünü geri gönderecek nesne.
Dönüşler
unpack
Verilen tablodan elemanları döndürür.Varsayılan olarak, i 1'dir ve j uzunluğun list tarafından tanımlandığı gibi uzunluğudur, uzunluk işlecisi tarafından tanımlanan.
Parametreler
Dönüşler
xpcall
Bu işlev, yeni bir hata elektörü ayarlayabilmeniz dışında pcall() ile benzerdir.
xpcall() çağrı işlevini korumalı modda kullanarak f hata elektörü olarak err ve bir dizi argüman geçer ve bir liste gönderir.f içindeki herhangi bir hata yayılmaz; bunun yerine, xpcall() hata yakalar, orijinal hata nesnesi ile err fonksiyonunu çağırır ve bir durum kodu döndürür.İlk sonucu durum kodudur (booleen), ki bu başarılı bir çağrı yapılırsa hata olmadan doğrudur.Bu durumda, xpcall() da bu ilk sonuçtan sonra tüm çağrı sonuçlarını döndürür.Herhangi bir hata durumunda, xpcall() yanlış döndürür ve sonuç err 'dan gelir.
Farklı olarak , fonksiyonu işlevin yığın izini korur, ki bunu veya kullanarak denetleyebilirsiniz.
Parametreler
Dönüşler
Özellikler
_G
Aynı bağlama seviyesindeki tüm senaryolar arasında paylaşılan bir tablo.
_VERSION
Mevcut derleyici sürümünü içeren bir dize bulunduran küresel bir değişken (fonksiyon değil).