Luau globals

사용되지 않는 항목 표시

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

다음은 Luau에 기본적으로 제공되는 함수 및 변수 목록입니다.이 함수는 표준 설치에서 LuauLua 5.1.4의 둘 다에서 사용할 수 있지만 Roblox에서 일부가 작동하는 방식에 약간의 차이가 있습니다.

요약

함수

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

    제공된 value 가 해결되어 false 또는 nil 로 확인되면 오류를 발생시킵니다.

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

    스레드 실행이 중지되고 오류가 발생합니다.

  • 총 메모리 힙 크기(킬로바이트)를 반환합니다.

  • getmetatable(t : Variant):Variant

    지정된 테이블의 metatable을 반환합니다.

  • 반복기 함수와 루프에서 사용할 테이블을 반환합니다.

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

    제공된 코드를 실행할 수 있는 함수로 반환합니다.

  • newproxy(addMetatable : boolean):userdata

    userdata 를 생성하여 메타테이블이 있을 수 있는 옵션을 제공합니다.

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

    루프에서 사용하는 반복기 함수.

  • 반복기 함수와 제공된 테이블을 사용하여 for 루프에서 사용하도록 반환합니다.

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

    제공된 함수를 실행하고 던지는 오류를 캡처하여 함수의 성공과 결과를 반환합니다.

  • print(params : Tuple):()

    제공된 모든 값을 출력에 인쇄합니다.

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

    메타메소드를 우회하여 v1v2 가 동일한지 여부를 반환합니다.

  • 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

    지정된 목록의 모든 요소를 튜플로 반환합니다.

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

    pcall()와 유사하지만 사용자 지정 오류 처리기를 사용합니다.

속성

  • 동일한 컨텍스트 레벨의 모든 스크립트 간에 공유되는 테이블.

  • 현재 인터프리터 버전이 포함된 문자열을 보유하는 전역 변수입니다.

함수

assert

Variant

제공된 valuefalse 또는 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

총 메모리 힙 크기(킬로바이트)를 반환합니다.숫자는 운영 체제 관점에서 현재 힙 소비를 반영하며, 가비지 수집기가 개체를 해제할 때 시간이 흐름에 따라 변동합니다.

반환

getmetatable

Variant

지정된 테이블의 metatable을 반환하거나, 없으면 를 반환합니다.t에 메타테이블이 있고 __metatable 메타메소드가 설정되어 있으면 대신 그 값을 반환합니다.


-- getmetatable 보여주기
local meta = {}
local t = setmetatable({}, meta)
print(getmetatable(t) == meta) --> 참
-- __metatable 메타메소드를 설정하여 원래 메타테이블을 복구할 수 없게 만듭니다: Make the original metatable unrecoverable by setting the __metatable metamethod:
meta.__metatable = "protected"
print(getmetatable(t)) --> protected

매개 변수

t: Variant

메타테이블을 가져올 개체.

반환

Variant

ipairs

반환 세 가지 값: 반복기 함수, 테이블 t 및 숫자 0.반복기 함수가 호출될 때마다 테이블에서 다음 숫자 인덱스-값 쌍을 반환합니다.일반적인 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의 Luau는 loadstring()를 사용하여 컴파일된 바이트코드를 로드할 수 없습니다.

loadstring() 는 기본적으로 비활성화되어 있습니다. 활성화 방법에 대한 지침은 ServerScriptService 를 참조하십시오.

경고: 이 메서드는 반환된 함수에서 특정 Luau 최적화를 비활성화합니다.극도의 주의가 필요합니다 loadstring() ; 사용자가 경험에서 코드를 실행할 수 있도록 하려는 경우, getfenv()setfenv() 을 사용하여 반환된 함수의 환경을 보호하십시오.

매개 변수

contents: string

Luau 코드로 로드할 지정된 문자열.

chunkname: string

오류 메시지 및 디버그 정보에 대한 선택적 청크 이름. 지정되지 않으면 Luau는 contents 문자열을 사용합니다.

반환

Variant

newproxy

userdata 를 생성하여 메타테이블이 있을 수 있는 옵션을 제공합니다.

매개 변수

addMetatable: boolean
기본값: false

반환

반복기 함수, 전달된 테이블 tnil 을 반환하여 일반적인 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에서 printtostring 를 호출하지 않지만, 테이블에 하나가 있으면 __tostring 메타메소드가 여전히 발생합니다.

매개 변수

params: Tuple

출력될 인수 수입니다.

반환

()

rawequal

어떠한 메타메소드를 호출하지 않고도 v1v2 와 같은지 확인합니다.

매개 변수

v1: Variant

비교할 첫째 변수.

v2: Variant

비교할 두 번째 변수.

반환

rawget

Variant

어떤 메타메소드를 호출하지 않고도 table[index]의 실제 값을 가져옵니다.

매개 변수

참조할 테이블.

index: Variant

t 에서 가져올 인덱스.

반환

Variant

rawlen

메타메소드를 호출하지 않고 문자열이나 테이블의 길이를 반환합니다.

매개 변수

참조할 테이블.

반환

rawset

메타메소드를 호출하지 않고 실제 값 table[index] 을 지정된 value 로 설정합니다.

매개 변수

참조할 테이블.

index: Variant

t 지정된 value 설정할 인덱스. nil 다를 수 있어야 합니다.

value: Variant

테이블 t 에서 지정된 index 에 설정할 값.

반환

require

Variant

제공된 ModuleScript를 실행하고 ModuleScript에서 반환된 것(일반적으로 테이블 또는 함수)을 반환합니다.ModuleScript가 아직 실행되지 않았다면 실행됩니다.

대신 문자열 경로가 제공되면, 먼저 스크립트에 대해 해결되고, Luau의 식의 Unix와 유사한 의미를 모방합니다.예를 들어 아래 예제의 각 쌍의 require() 식에는 기능적으로 동일한 호출 2개가 포함되어 있습니다.


-- "./"는 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 과 동일합니다.
  • 해결된 경로가 Instance 가 아닌 ModuleScript 로 가리키는 경우, require() 는 그 ModuleScript 이름의 Init 또는 init 부모에 연결되어 있는 Instance 를 찾으려고 시도하고, 존재하는 경우 대신 사용합니다.
  • 원하는 가 호출 시간에 없으면 호출이 실패하고 오류가 발생합니다.즉, require-by-string은 비블록킹입니다: 암시적으로 ModuleScript이 생성될 때까지 기다리지 않습니다.

반환 개체가 클라이언트-서버 경계의 동일한 부분에서 초기 호출로 생성된 후에는 미래의 호출은 코드를 다시 실행하지 않습니다.대신, 초기 호출 에서 생성된 동일한 require()에 대한 참조가 제공됩니다.이 동작을 통해 여러 스크립트에서 여러 require() 호출이 동일한 반환된 개체를 참조하므로 다른 스크립트 간에 값을 공유할 수 있습니다.반환된 개체가 테이블인 경우, 테이블 내에 저장된 모든 값이 공유되고 ModuleScript가 필요한 모든 스크립트에서 액세스할 수 있습니다.

위에서 언급한 대로 "개체 공유" 행동은 클라이언트-서버 경계를 넘지 않습니다.즉, 클라이언트 와 서버 에 액세스할 수 있고 클라이언트 와 서버 에서 호출되는 코드가 두 번 실행되고 서버 와 서버 에서 받은 고유한 반환 개체가 받는다는 것입니다.

또한 사용자가 실행하려는 앱이 Roblox에 업로드되었고(인스턴스 이름이 인 경우) 자산 ID의 함수를 사용하여 로드할 수 있지만, 서버에서만 가능합니다.

매개 변수

제공하는 반환 값을 검색하기 위해 실행될 ModuleScript 또는 하나에 대한 참조(문자열 경로 또는 자산 ID).

반환

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

인수 튜플.

반환

setmetatable

지정된 테이블 t 에 대한 메타테이블을 newMeta 로 설정합니다.newMetanil 이면, t 의 메타테이블이 제거됩니다.마지막으로, 이 함수는 전달된 테이블 t를 반환합니다.If 이미 메타테이블에 설정된 메타메소드가 있는 경우, 이것을 호출하면 오류가 발생합니다.


local meta = {__metatable = "protected"}
local t = {}
setmetatable(t, meta) -- 이것은 t의 메타테이블을 설정합니다
-- 이제 메타테이블이 있는 테이블, t가 있습니다. 변경하려고 하면...
setmetatable(t, {}) --> Error: cannot change a protected metatable

매개 변수

설정할 메타테이블의 테이블.

newMeta: Variant

만약 nil , 지정된 테이블의 메타테이블 t 이 제거됩니다. 그렇지 않으면, 지정된 테이블에 설정할 메타테이블 t 입니다.

반환

tonumber

Variant

값을 해석하기 위해 지정된 기반으로 arg를 숫자로 변환하려는 시도.변환할 수 없는 경우 이 함수는 nil를 반환합니다.

기본값은 2와 36 사이의 모든 정수일 수 있습니다.10보다 높은 기지에서는 문자 'A'(대/소문자 중 하나)가 10을 나타내고, 문자 'B'는 11을 나타내고, 문자 'Z'는 35를 나타냅니다.기본 10(기본값)에서 숫자에는 소수 부분과 선택적 지수 부분이 있을 수 있습니다.다른 기반에서는 서명되지 않은 정수만 허용됩니다.

문자열이 0x로 시작하고 기본이 제공되지 않으면 0x가 잘리고 기본이 16이거나 16진수라고 가정됩니다.


print(tonumber("1337")) --> 1337(기본 10, 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, 16진수 가정)
print(tonumber("roblox")) --> nil(오류를 발생시키지 않음)
-- 팁: 변환할 수 없는 숫자로 오류를 발생시키려는 경우 assert와 함께 사용하십시오
print(assert(tonumber("roblox"))) --> Error: assertion failed

매개 변수

arg: Variant

숫자로 변환할 개체.

base: number

변환할 arg 숫자 기반.

기본값: 10

반환

Variant

tostring

모든 유형의 인수를 받고 적절한 형식의 문자열로 변환합니다.숫자가 변환되는 방식을 완전히 제어하려면 string.format을 사용하십시오.e의 메타메소드가 __tostring에 있으면, 유일한 인수로 e을 호출하고 결과를 반환합니다.


local isRobloxCool = true
-- 부울을 문자열로 변환한 다음 연결하십시오:
print("Roblox is cool: " .. tostring(isRobloxCool)) --> Roblox is cool: true

매개 변수

e: Variant

문자열로 변환할 개체.

반환

type

유일한 인수의 유형을 반환하여 문자열로 코딩됩니다.이 함수의 가능한 결과는 "nil" (문자열이 아닌 값 nil), "number" , "string" , "boolean" , "table" , "vector" , "function" , "thread" , "userdata" , 그리고 "buffer" 입니다.buffervector 프리미티브는 Lua가 아닌 Luau에서 추가된 것입니다.

매개 변수

v: Variant

반환할 유형의 개체.

반환

unpack

Variant

지정된 테이블의 요소를 반환합니다.기본적으로, i 는 1이고 j 는 길이 운영자에 의해 정의된 list 의 길이입니다.

매개 변수

list: table

열릴 요소 목록.

해체할 첫 번째 요소의 인덱스.

기본값: 1

해체할 마지막 요소의 인덱스.

기본값: #list

반환

Variant

xpcall

이 함수는 pcall() 와 비슷하지만 새 오류 처리기를 설정할 수 있습니다.

xpcall() 호출 함수 f 보호 모드에서 사용하여 오류 처리기로 err 을 사용하고 인수 목록을 전달합니다.내부의 모든 오류 f 는 전파되지 않으며, 대신 xpcall() 오류를 캡처하고 원래 오류 개체로 함수 err 를 호출하고 상태 코드를 반환합니다.첫 번째 결과는 상태 코드(부울)로, 오류 없이 호출이 성공하면 참입니다.이 경우, xpcall() 또한 이 첫 번째 결과 이후에 모든 호출 결과를 반환합니다.오류가 발생하면 xpcall() 는 false를 반환하고 err 의 결과를 반환합니다.

pcall() 와는 달리, err 함수는 스택 추적을 유지하며, 이는 f 또는 debug.info() 또는 debug.traceback() 을 사용하여 검사할 수 있습니다.

매개 변수

보호 모드에서 호출할 함수.

xpcall이 오류를 감지하면 오류 처리로 사용할 함수.

args: Tuple

반환

Variant

속성

동일한 컨텍스트 레벨의 모든 스크립트 간에 공유되는 테이블.

_VERSION

현재 인터프리터 버전이 포함된 문자열을 보유하는 전역 변수(함수가 아님)입니다.