強制的タイプ

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

Luau がオペレーションで値または 変数 を使おうとしても、算術連結、または割り当てなど、操作が期待しているタイプではない値を使用しようとしても、Luau は ( 強制する )値を変更するように変換します。その操作の実行時に強制が発生し、変数の値を変更しません。

算術

Luau は、算術操作 で、文字列を数字に強制します。この動作は Luau に組み込まれています。タイプが算術に非互換である場合、Luau はエラーをスローし、スクリプトの残りを実行しません。たとえば、文字列が数字を表していない場合は、数字に文字列を追加できません。


print(100 + "7") -- 107
print(100 - "7") -- 93
print("1000" + 234) -- 1234
print("1000" - 234) -- 766
print("hello" + 234) -- error: attempt to perform arithmetic (add) string and number

結合

結合では、Luau は数字を文字列に強制します。強制を使用せずに数字を文字列に変換するには、string.format() 関数を使用します。


print("Pi is " .. math.pi) --> Pi は 3.1415926535898
print("Pi is " .. 3.1415927) --> Pi は 3.1415927
-- 3桁まで丸める
print("Pi is " .. string.format("%.3f", 3.1415927)) -- Pi is 3.142

割り当て

いくつかのプロパティは、Enum または文字列などの特定のデータタイプを期待していますが、異なるタイプの値を割り当てて、Luauは値をプロパティが期待するタイプに変換します。

枚数

Luau は、枚挙値の数と文字列を全体の枚挙名に強制します。たとえば、number、string、または全体の enum 名を使用して、Part.Material プロパティの値を名前にすることができ、print() 関数は常に全体の enum 名を印刷します。明示的で全体の枚列名を使用するのがベストプラクティスです。Enums に関する詳細情報は、Enums を参照してください。


local Workspace = game:GetService("Workspace")
local part1 = Instance.new("Part")
part1.Material = 816
part1.Parent = Workspace
print(part1.Material) -- Enum.Material.Concrete
local part2 = Instance.new("Part")
part2.Material = "Concrete"
part2.Parent = Workspace
print(part2.Material) -- Enum.Material.Concrete
-- これは最良の実践です、なぜならそれが最も明確であるからです
local part3 = Instance.new("Part")
part3.Material = Enum.Material.Concrete
part3.Parent = Workspace
print(part3.Material) -- Enum.Material.Concrete

時刻 Time of day

夜、昼、またはその他の時間であるかどうかを定義する Lighting.TimeOfDay プロパティは、DateTime データタイプのストリング表現です。Lighting.TimeOfDay に番号を割り当てると、Luau はそれを DateTime の文字列表現に変換します。


local Lighting = game:GetService("Lighting")
Lighting.TimeOfDay = "05:00:00"
print(Lighting.TimeOfDay) -- 05:00:00
Lighting.TimeOfDay = 5
print(Lighting.TimeOfDay) -- 05:00:00