Luau globals

Artık kullanılmayanları göster

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Aşağıda, Luau'ya özgü işlevler ve değişkenlerin bir listesi bulunmaktadır.Bu işlevler, her ikisinin de Luau ve Lua 5.1.4 standart kurulumunda kullanılabilir, ancak bazılarının Roblox'ta nasıl çalıştığında bazı farklılıklar vardır.

Özet

İşlevler

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

    Verilen value 'nin çözümü false veya nil olursa bir hata atar.

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

    İşlemi durdurur ve bir hata atar.

  • Toplam bellek yığını boyutunu kilobayt olarak döndürür.

  • getmetatable(t : Variant):Variant

    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.

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

    Verilen kodu yürütülebilir bir işlev olarak döndürür.

  • newproxy(addMetatable : boolean):userdata

    Boş bir userdata oluşturur ve bir masaya sahip olma seçeneği ile.

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

    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.

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

    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.

  • print(params : Tuple):()

    Tüm sağlanan değerleri çıkıya basar.

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

    v1 'nin v2 'ye eşit olup olmadığını döndürür, metodlarını atlayarak.

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

    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.

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

    Herhangi bir metodu atlayarak table[index] 'nin gerçek değerini ayarlar

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

    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.

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

    Verilen indeksten sonra tüm argümanları döndürür.

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

    Verilen tablonun metatable'ini ayarlar.

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

    Verilen değeri bir sayıya dönüştürerek geri verir veya imkansızsa nil .

  • tostring(e : Variant):string

    Verilen değeri bir dizidönüştürülmüş olarak veya imkansızsa nil döndürür.

  • type(v : Variant):string

    Verilen nesnenin temel türünü döndürür.

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

    Verilen listeden tüm elemanları bir tupl olarak döndürür.

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

    Özel bir hata elektörü kullanması dışında pcall() benzer.

Özellikler

  • Aynı bağlama seviyesindeki tüm senaryolar arasında paylaşılan bir tablo.

  • Mevcut yorumlayıcı sürümünü içeren bir dize tutan küresel bir değişken.

İşlevler

assert

Variant

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 * 4
assert(product == 360, "Oh dear, multiplication is broken")
-- The line above does nothing, because 90 times 4 is 360

Parametreler

value: Variant

Karşı iddia edilecek değer.

errorMessage: string

İddia başarısız olursa hata içinde gösterilecek metin.

Varsayılan değer: assertion failed!

Dönüşler

Variant

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

message: Variant

Görüntülenecek hata mesajı.

level: number

Basılması gereken bilgi seviyesi. Varsayılan 1.

Varsayılan değer: 1

Dönüşler

()

gcinfo

Toplam bellek yığını boyutunu kilobayt olarak döndürür.Sayı, operasyon sistemi perspektifinden mevcut yığın tüketimini yansıtır, ki bu da zamanla değişen çöp toplayıcısı tarafından özgürleştirilen nesnelerdir.

Dönüşler

getmetatable

Variant

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

t: Variant

Metatable'ı almak için alınacak nesne.

Dönüşler

Variant

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) do
print(index, fruit) --> 1 elma, 2 portakal, 3 kivi, vs...
end

Parametreler

Öğeleri döngülenmesi gereken bir tablo.

loadstring

Variant

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

contents: string

Luau kodu olarak yüklenecek belirtilen dize.

chunkname: string

Hata mesajları ve hata ayıklama bilgileri için isteğe bağlı bir parça adı. Belirtilmediğinde, Luau contents dizikullanır.

Dönüşler

Variant

newproxy

Boş bir userdata oluşturur ve bir masaya sahip olma seçeneği ile.

Parametreler

addMetatable: boolean
Varsayılan değer: false

Dönüşler

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) do
print(name .. " has score: " .. score)
end

Parametreler

Döngüye geçilecek bir dizi veya sözlük tablosu.

Dönüşler

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

func: function

Korumalı modda çağrılacak işlev.

args: Tuple

İnfaz sırasında func göndermek için verilen argümanlar.

Dönüşler

Variant

print

()

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

params: Tuple

Çıkarılacak herhangi bir sayıda argüman.

Dönüşler

()

rawequal

Herhangi bir metod çağrımadan eşit olup olmadığını kontrol eder.

Parametreler

v1: Variant

Karşılaştırılacak ilk değişken.

v2: Variant

Karşılaştırılacak ikinci değişken.

Dönüşler

rawget

Variant

Herhangi bir metod çağrımadan table[index] 'nin gerçek değerini alır.

Parametreler

Referans edilecek tablo.

index: Variant

t 'den alınacak indeks.

Dönüşler

Variant

rawlen

Herhangi bir metod çağrımadan, dize veya tablonun uzunluğunu döndürür.

Parametreler

Referans edilecek tablo.

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.

index: Variant

Belirlenen bir t için ayarlanacak indeks value. nil 'dan farklı olmalıdır.

value: Variant

Tablo t 'de belirtilen bir değere ayarlanacak değer. index .

Dönüşler

require

Variant

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ğerdir
require(script.Parent.ModuleScript)
require("./ModuleScript")
-- ../" senaryoya eşdeğerdir script.Parent.Parent
require(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

Variant

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 C
print(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

index: Variant

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ı.

args: Tuple

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.

newMeta: Variant

Eğer , verilen tablonun metatablosu kaldırılır. Aksi takdirde, verilen tablo için ayarlanacak metatablo .

Dönüşler

tonumber

Variant

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ın
print(assert(tonumber("roblox"))) --> Error: assertion failed

Parametreler

arg: Variant

Bir sayıya dönüştürülecek nesne.

base: number

arg dönüştürmek için sayısal taban.

Varsayılan değer: 10

Dönüşler

Variant

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

e: Variant

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

v: Variant

Türünü geri gönderecek nesne.

Dönüşler

unpack

Variant

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

list: table

Açılacak öğelerin listesi.

Açılacak ilk elemanın indeksi.

Varsayılan değer: 1

Açılacak son elemanın indeksi.

Varsayılan değer: #list

Dönüşler

Variant

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

Korumalı modda çağrılacak işlev.

xpcall bir hata yakalarsa bir hata ele alma işlevi olarak kullanılacak işlev.

args: Tuple

Dönüşler

Variant

Özellikler

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).