요약
함수
제공된 value 가 해결되어 false 또는 nil 로 확인되면 오류를 발생시킵니다.
스레드 실행이 중지되고 오류가 발생합니다.
총 메모리 힙 크기(킬로바이트)를 반환합니다.
지정된 테이블의 metatable을 반환합니다.
반복기 함수와 루프에서 사용할 테이블을 반환합니다.
제공된 코드를 실행할 수 있는 함수로 반환합니다.
빈 userdata 를 생성하여 메타테이블이 있을 수 있는 옵션을 제공합니다.
루프에서 사용하는 반복기 함수.
반복기 함수와 제공된 테이블을 사용하여 for 루프에서 사용하도록 반환합니다.
제공된 함수를 실행하고 던지는 오류를 캡처하여 함수의 성공과 결과를 반환합니다.
제공된 모든 값을 출력에 인쇄합니다.
메타메소드를 우회하여 v1 와 v2 가 동일한지 여부를 반환합니다.
모든 메타메소드를 무시하여 table[index]의 실제 값을 가져옵니다.
메타메소드를 무시하여 문자열이나 테이블의 길이를 반환합니다.
메타메소드를 무시하여 table[index]의 실제 값을 설정합니다.
아직 실행되지 않은 경우 지정된 ModuleScript에서 반환된 값을 반환하고 실행합니다.
지정된 인덱스 이후에 모든 인수를 반환합니다.
지정된 테이블의 metatable을 설정합니다.
제공된 값을 숫자로 변환하여 반환하거나 불가능한 경우 nil입니다.
제공된 값을 문자열로 변환하여 반환하거나 불가능한 경우 nil입니다.
제공된 개체의 기본 유형을 반환합니다.
지정된 목록의 모든 요소를 튜플로 반환합니다.
pcall()와 유사하지만 사용자 지정 오류 처리기를 사용합니다.
함수
assert
제공된 value 가 false 또는 nil 인 경우 오류를 던집니다. 주장이 통과되면 전달된 모든 값을 반환합니다.
local product = 90 * 4assert(product == 360, "Oh dear, multiplication is broken")-- The line above does nothing, because 90 times 4 is 360
매개 변수
대립할 값.
주장이 실패하면 표시될 오류 텍스트.
반환
error
호출된 마지막 보호된 함수를 영구 정지오류 메시지로 message를 출력합니다.오류가 포함된 함수가 보호된 함수(예: pcall())에서 호출되지 않으면 함수를 호출한 스크립트가 종료됩니다.오류 함수 자체는 결코 반환되지 않고 스크립트 오류처럼 작동합니다.
level 인수는 오류 위치를 가져오는 방법을 지정합니다.레벨 1 (기본값)로 인해 오류 위치는 오류 함수가 호출된 곳입니다.레벨 2는 오류를 호출한 함수가 호출된 위치를 가리킵니다; 그리고 계속됩니다.레벨 0
매개 변수
표시할 오류 메시지.
인쇄할 정보 레벨. 기본값은 1입니다.
반환
getmetatable
지정된 테이블의 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
매개 변수
메타테이블을 가져올 개체.
반환
ipairs
반환 세 가지 값: 반복기 함수, 테이블 t 및 숫자 0.반복기 함수가 호출될 때마다 테이블에서 다음 숫자 인덱스-값 쌍을 반환합니다.일반적인 for 루프에서 사용하면 반환 값을 사용하여 테이블의 각 숫자 인덱스를 반복할 수 있습니다.
local fruits = {"apples", "oranges", "kiwi"}for index, fruit in ipairs(fruits) doprint(index, fruit) --> 1개의 사과, 2개의 오렌지, 3개의 키위 등...end
매개 변수
요소가 반복될 테이블입니다.
loadstring
문자열에서 Luau 코드를 로드하고 함수로 반환합니다.
표준 Lua 5.1과 달리 Roblox의 Luau는 loadstring()를 사용하여 컴파일된 바이트코드를 로드할 수 없습니다.
loadstring() 는 기본적으로 비활성화되어 있습니다. 활성화 방법에 대한 지침은 ServerScriptService 를 참조하십시오.
경고: 이 메서드는 반환된 함수에서 특정 Luau 최적화를 비활성화합니다.극도의 주의가 필요합니다 loadstring() ; 사용자가 경험에서 코드를 실행할 수 있도록 하려는 경우, getfenv() 및 setfenv() 을 사용하여 반환된 함수의 환경을 보호하십시오.
매개 변수
반환
next
배열에서 첫 번째 키/값 쌍을 반환합니다.lastKey 인수가 지정되면 제공된 키에 따라 배열의 다음 요소를 반환합니다.숫자 인덱스에도 불구하고 인덱스가 열거되는 순서는 지정되지 않습니다.숫자 순서로 테이블을 트래버스하려면 숫자 루프 또는 ipairs를 사용하십시오.
트래버스 중에 테이블의 비존재 필드에 값을 할당하면 다음의 동작은 정의되지 않습니다. The behavior of next is undefined if, during the traversal, you assign any value to a non-existent field in the table.그러나 기존 필드를 수정할 수 있습니다.특히 기존 필드를 지울 수 있습니다.
매개 변수
검색할 배열.
이전에 다음으로 호출에서 검색된 마지막 키.
반환
pcall
보호 모드에서 지정된 인수로 함수를 호출합니다 func 보호 모드에서 지정된 인수로 함수를 호출합니다즉, func 내의 모든 오류가 전파되지 않으며, pcall() 오류를 캡처하고 상태 코드를 반환합니다.첫 번째 결과는 상태 코드(부울)로, 오류 없이 호출이 성공하면 참입니다.이 경우, pcall() 또한 이 첫 번째 결과 이후에 모든 결과를 반환합니다.오류가 발생하면 pcall() 에러 메시지와 함께 거짓을 반환합니다.
반환
모든 인수를 받아 출력에 해당 값을 인쇄합니다.print는 형식화된 출력용으로 의도되지 않지만, 일반적으로 디버깅을 위한 빠른 방법으로 값을 표시하기 위한 것입니다.서식이 지정된 출력의 경우 string.format()를 사용하십시오.Roblox에서 print 는 tostring 를 호출하지 않지만, 테이블에 하나가 있으면 __tostring 메타메소드가 여전히 발생합니다.
매개 변수
출력될 인수 수입니다.
반환
rawget
어떤 메타메소드를 호출하지 않고도 table[index]의 실제 값을 가져옵니다.
매개 변수
참조할 테이블.
t 에서 가져올 인덱스.
반환
require
제공된 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).
반환
반환된 내용(일반적으로 테이블 또는 함수). ModuleScript
select
인수 번호 index 이후의 모든 인수를 반환합니다. 부정적인 경우 인수 목록의 끝에서 반환됩니다.
print(select(2, "A", "B", "C")) --> B Cprint(select(-1, "A", "B", "C")) --> C
index 인수가 "#"로 설정되면, 반환된 후에 전달된 인수 수가 됩니다.
print(select("#", "A", "B", "C")) --> 3
매개 변수
인덱스는 인수를 반환하여 모든 인수를 args 후에 반환합니다.그것이 "#"로 설정되어 있으면, 반환된 후에 전달된 인수 수입니다.
인수 튜플.
반환
setmetatable
지정된 테이블 t 에 대한 메타테이블을 newMeta 로 설정합니다.newMeta 가 nil 이면, t 의 메타테이블이 제거됩니다.마지막으로, 이 함수는 전달된 테이블 t를 반환합니다.If 이미 메타테이블에 설정된 메타메소드가 있는 경우, 이것을 호출하면 오류가 발생합니다.
local meta = {__metatable = "protected"}local t = {}setmetatable(t, meta) -- 이것은 t의 메타테이블을 설정합니다-- 이제 메타테이블이 있는 테이블, t가 있습니다. 변경하려고 하면...setmetatable(t, {}) --> Error: cannot change a protected metatable
매개 변수
설정할 메타테이블의 테이블.
만약 nil , 지정된 테이블의 메타테이블 t 이 제거됩니다. 그렇지 않으면, 지정된 테이블에 설정할 메타테이블 t 입니다.
반환
tonumber
값을 해석하기 위해 지정된 기반으로 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 숫자 기반.
반환
tostring
모든 유형의 인수를 받고 적절한 형식의 문자열로 변환합니다.숫자가 변환되는 방식을 완전히 제어하려면 string.format을 사용하십시오.e의 메타메소드가 __tostring에 있으면, 유일한 인수로 e을 호출하고 결과를 반환합니다.
local isRobloxCool = true-- 부울을 문자열로 변환한 다음 연결하십시오:print("Roblox is cool: " .. tostring(isRobloxCool)) --> Roblox is cool: true
매개 변수
문자열로 변환할 개체.
반환
xpcall
이 함수는 pcall() 와 비슷하지만 새 오류 처리기를 설정할 수 있습니다.
xpcall() 호출 함수 f 보호 모드에서 사용하여 오류 처리기로 err 을 사용하고 인수 목록을 전달합니다.내부의 모든 오류 f 는 전파되지 않으며, 대신 xpcall() 오류를 캡처하고 원래 오류 개체로 함수 err 를 호출하고 상태 코드를 반환합니다.첫 번째 결과는 상태 코드(부울)로, 오류 없이 호출이 성공하면 참입니다.이 경우, xpcall() 또한 이 첫 번째 결과 이후에 모든 호출 결과를 반환합니다.오류가 발생하면 xpcall() 는 false를 반환하고 err 의 결과를 반환합니다.
pcall() 와는 달리, err 함수는 스택 추적을 유지하며, 이는 f 또는 debug.info() 또는 debug.traceback() 을 사용하여 검사할 수 있습니다.
반환
속성
_G
동일한 컨텍스트 레벨의 모든 스크립트 간에 공유되는 테이블.
_VERSION
현재 인터프리터 버전이 포함된 문자열을 보유하는 전역 변수(함수가 아님)입니다.