Luau globals

非推奨を表示

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

次は、Luau に固有の機能と変数のリストです。これらの機能は、LuauLua 5.1.4 の標準インストールで使用できますが、RobloRoblox(ロブロックス)上で動作する方法にはいくつかの違いがあります。

概要

関数

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

    提供された valuefalse または nil に解決すると、エラーをスローします。

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

    スレッドの実行を停止し、エラーを発生させます。

  • キロバイトでの合計メモリヒープサイズを返します。

  • getmetatable(t : Variant):Variant

    指定されたテーブルのメタテーブルを返す。

  • Iterator 関数と for ループで使用するテーブルを返します。

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

    提供されたコードを実行できる機能として返します。

  • newproxy(addMetatable : boolean):userdata

    空の userdata を作成し、メタテーブルを持つオプションを持っています。

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

    ループで使用する迭器関数。

  • Iterator 関数と提供されたテーブルを返し、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

    指定されたモジュールスクリプトによって返された値を返し、まだ実行されていない場合は実行します。

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

    指定されたインデックスの後、すべての引数を返します。

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

    指定されたテーブルのメタテーブルを設定します。

  • 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

指定されたテーブルのメタテーブルを返す t がある場合、そうでない場合は nil を返す。if t にメタテーブルがあり、__metatable のメタメソッドが設設定するされている場合、その値を代わりに返します。


-- getmetatable をデモする:
local meta = {}
local t = setmetatable({}, meta)
print(getmetatable(t) == meta) --> 真
-- __metatable メタメソッドを設定して、元のメタテーブルを回復不可能にします:
meta.__metatable = "protected"
print(getmetatable(t)) --> protected

パラメータ

t: Variant

メタテーブルを取得するオブジェクト。

戻り値

Variant

ipairs

3つの値を返します:iterator 機能、テーブル t および数字 0 。Iterator 関数が呼び出されるたびに、テーブルに次の数字インデックス-値ペアが返されます。一般的な 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

戻り値

返す迭器関数、パスされたテーブル t 、および nil 、その結果、一般的な 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() はエラーメッセージとともに false を返します。

パラメータ

func: function

保護モードで呼び出される機能。

args: Tuple

実行中に func に送信する引数。

戻り値

Variant

print

()

任意の数の引数を受け取り、出力にその値を印刷します。print はフォーマットされた出力の目的ではなく、通常はデバッグ用に、値を表示するための迅速な方法としてのみ使用されます。形式化された出力の場合は、string.format() を使用します。Roblox では、printtostring を呼び出しませんが、テーブルにメタメソッドがある場合は、__tostring が引き続き発動します。

パラメータ

params: Tuple

出力するアルゴリズムの数。Any number of arguments to be outputted.

戻り値

()

rawequal

メタメソッドを呼び出さずに、v1v2 と同じかどうかをチェックします。

パラメータ

v1: Variant

比較する最初の変数。

v2: Variant

比較する2番目の変数。

戻り値

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 がまだ実行されていない場合、実行されます。

代わりにストリングパスが提供される場合、まず ModuleScript スクリプトによって呼び出された require() の意味を模倣する Luauの require() 式の 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 を見つけて、それを使用します。それが存在する場合。
  • 必要な が呼び出し時に存在しない場合、呼び出しは失敗し、エラーが発生します。言い換えれば、要求-バイ-ストリングは非ブロックです:それは暗示的に ModuleScript が作成されるのを待っていません。

リターンオブジェクトが 初期 require()ModuleScript 呼び出しによって作成された後、将来の require() 呼び出しは、同じ ModuleScript (クライアントサーバー境界の同じ側面)で再度コードを実行しません。代わりに、最初の 呼び出しによって作成された同じ 返却オブジェクトへの参照が供給されます。この動作により、異なるスクリプト間で値の共有が可能になり、複数の require() 呼び出しが同じ返されたオブジェクトを参照するため、異なるスクリプト間で値が共有されます。返されたオブジェクトがテーブルの場合、テーブル内に保存された値はすべて共有され、ModuleScript が必要なスクリプトによってアクセス可能です。

上記のとおり、「オブジェクト共有」動作は、クライアント-サーバー境界を越えません。これは、ModuleScript がクライアントの **** およびサーバーの ReplicatedStorage にアクセス可能であり、require() が両方の LocalScript から呼び出され、Script が両方の ModuleScript から受け取った返却オブジェクトを別々に受け取ると、LocalScript のコードが2回実行され、Script は受け取った返却オブジェクトを別々に受け取ることを意味します。

また、ユーザーが実行したい が Roblox にアップロードされた場合 (インスタンスの名前は )、アセット ID の 機能を使用してロードできますが、サーバー上でのみです。

パラメータ

提供する返却値を取得するために実行される ModuleScript 、または 1 の参照 (文字列パスまたはアセット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 後にすべての引数を返す argument のインデックスです。それが "#" に設定されている場合、それが返された後にパスされた引数の数。

args: Tuple

引数のツープル。

戻り値

setmetatable

指定されたテーブルの metatable を t に設定し、newMeta に変更します。If newMetanil である場合、t のメタテーブルが削除されます。最後に、この機能は、パスされたテーブル t を返します。If 既に metatable の メタメソッドが設設定するされている場合、これを呼び出すとエラーが発生します。


local meta = {__metatable = "protected"}
local t = {}
setmetatable(t, meta) -- これは t のメタテーブルを設定します
-- 今、テーブル、t、メタテーブルがあります。それを変更しようとしても...
setmetatable(t, {}) --> Error: cannot change a protected metatable

パラメータ

設定するメタテーブルのテーブル。

newMeta: Variant

If nil である場合、指定されたテーブルのメタテーブル t が削除されます。そうでない場合は、指定されたテーブルのメタテーブルを設定します t

戻り値

tonumber

Variant

arg を指定されたベースを使用して数値に変換する試み。変換できない場合、この関数は nil を返します。

ベースは 2 と 36 の間の任意の整数である可能性があります。上記のベースの 10 以上では、「A」(大文字または小文字)は 10 を表し、「B」は 11 を表し、「Z」は 35 を表します。ベース 10 (デフォルト) では、数字には小数部分とオプションの指数部分があり得ます。他のベースでは、署名されていない整数のみが受け入れられます。

文字列が 0x で始まり、ベースが提供されない場合、0x がトリミングされ、ベースは 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、十六進コードを想定)
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"です。buffer プリミティブは Luau からの追加ではなく、Lua からの追加です。

パラメータ

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

グローバル変数 (関数ではない) で、現在のインタープリターバージョンを含む文字列を保持します。