تحويل النوع

*This content is translated using AI (Beta) and may contain errors. To view this page in English, click here.

إذا حاول 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 is 3.1415926535898
print("Pi is " .. 3.1415927) --> Pi is 3.1415927
-- يقرب إلى ثلاثة أرقام عشرية
print("Pi is " .. string.format("%.3f", 3.1415927)) -- Pi is 3.142

التعيين

بعض الخصائص تتوقع أنواع بيانات معينة، مثل Enum أو سلسلة نصية، ولكن يمكنك تعيين قيمة من نوع مختلف لها ويقوم Luau بتحويل القيمة إلى النوع الذي تتوقعه الخاصية.

الأنماط

يقوم Luau بتحويل الأرقام والسلاسل النصية لقيم الأنماط إلى الاسم الكامل للنمط. على سبيل المثال، يمكنك تسمية قيمة خاصية Part.Material باستخدام رقم، سلسلة نصية، أو الاسم الكامل للنمط، ودالة print() تقوم دوماً بعرض الاسم الكامل للنمط. من الأفضل أن تكون صريحًا وتستخدم الاسم الكامل للنمط. لمزيد من المعلومات حول الأنماط، انظر 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

وقت اليوم

خاصية 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 وشعار "توسيع حدود المخيلة"، من ضمن علاماتنا التجارية المسجّلة وغير المسجّلة في الولايات المتحدة وبلدان أخرى.