型の強制変換

*このコンテンツは、ベータ版の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) -- エラー: 算術 (加算) において文字列と数値を操作しようとしました

連結

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


print("πは " .. math.pi) --> πは 3.1415926535898
print("πは " .. 3.1415927) --> πは 3.1415927
-- 小数点以下3桁に丸める
print("πは " .. string.format("%.3f", 3.1415927)) -- πは 3.142

割り当て

特定のデータ型、例えば列挙型や文字列を期待するプロパティもありますが、異なる型の値を割り当てることができ、Luauはその値をプロパティが期待する型に強制変換します。

列挙型

Luauは、列挙型の値の数値や文字列を完全な列挙名に強制変換します。たとえば、Part.Materialプロパティの値を数値、文字列、または完全な列挙名で指定できますが、print()関数は常に完全な列挙名を表示します。明示的に完全な列挙名を使用することが最良のプラクティスです。列挙型の詳細については、列挙型を参照してください。


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

一日の時間

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
©2026 Roblox Corporation。Roblox(ロブロックス)、RobloxロゴおよびPowering Imaginationは、米国並びにその他の国における登録商標および非登録商標です。