English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا الدرس، ستعرف أن Swift دعمت أنواع البيانات المختلفة، وستستخدمها أثناء إنشاء المتغيرات أو الثوابت.
نوع البيانات هو نوع البيانات التي يمكن تخزينها فيها المتغير أو الثابت (القيمة). على سبيل المثال، في المقالمتغيرات Swift وثوابت Swift، قمت بإنشاء متغير ومتغير ثابت لتخزين البيانات النصية في الذاكرة.
يمكن أن تكون البيانات نصًا/نصًا (مثل "Hello") أو رقمًا (مثل 12.45)، أو يمكن أن تكون إشارات (مثل 0&1). تحديد نوع البيانات يضمن تخزين نوع البيانات المحدد فقط.
دعنا نرى سيناريو:
افترض أنك تريد إنشاء لعبة. نظرًا لأن معظم الألعاب تظهر النقاط العالية واسم اللاعب بعد اكتمال اللعبة، فإنك تحتاج إلى تخزين هذه البيانات للاعب.
النقاط العالية (highScore) هي أرقام (مثل 59)، واسم اللاعب (playerName) هو نص (مثل Jack). يمكنك إنشاء متغيرين أو ثابتين لتخزين البيانات.
في Swift، يمكن القيام بذلك من خلال تعريف المتغيرات والأنواع كالتالي:
var highScore: Int = 59 var playerName: String = "Jack"
في هذا المكان، قمنا بتعريف متغير HighScore من نوع Int يحتوي على القيمة 59. بالإضافة إلى متغير playerName من نوع نص يحتوي على القيمة Jack.
لكن، إذا قمت بتنفيذ ما يلي:
var highScore: Int = "Jack"
ستحصل على خطأ في وقت التجميع، سيتم رميه لا يمكن تحويل قيمة نوع 'String' إلى نوع 'Int' المحدد.
هذا لأنك أعلنت عن highScore لتخزين قيمة الصحيحة، لكنك وضعت فيها نصًا. هذا الخطأ يضمن أن highScore يمكنه تخزين عدد واحد فقط وليس اسم اللاعب.
جزء مهم آخر من نوع البيانات هو حجمه. هذا يعين حجم البيانات التي يمكن تخزينها في المتغير أو الثابت المحدد.
يُقاس حجم Type بالبites، ويمكنه حفظ 2bitsإذا كنت تعرف Bit (البت)، يمكنك التفكير فيه كقيمة 0 أو 1.
لذلك، بالنسبة لـالحجم إذا كان حجم size = 1 بت، فإنه يمكنه حفظ 2 1 = 2 قيم: 0 أو 1. لذا، يمكن للنظام الثنائي في برنامج الحروف تفسير 0 كـ a/0، و1 كـ b/1.0.
0 -> a أو 0 1 -> b أو 1
بالمثل، يمكن للنظام الثنائي حفظ2 2 = 4 قيم: (00,01,10,11)، ويمكن تمثيل كل مجموعة منها كما يلي:
00 -> a أو 0 01 -> b أو 1 11 -> c أو 2 10 -> d أو 3
للنظام الثنائي، يمكنه حفظ2 n قيمالقيمة
فيما يلي قائمة بأنواع البيانات الأكثر استخدامًا في Swift:
يمكن للمتغيرات أو الثوابت المعلن عنها كنوع Bool أن تحفظ فقط قيمتين true أو false.
القيمة الافتراضيةfalse
يستخدم هذا غالبًا في معالجة جملة if-else. يمكنك الرجوع إلى المقالة Swift if else.
let result:Bool = true print(result)
عند تشغيل البرنامج، الناتج هو:
true
يمكن للمتغيرات أو الثوابت المعلن عنها كنوع عددي أن تحفظ أرقامًا إيجابية وسلبية، بما في ذلك الصفر، بدون جزء عشري.
القيمة الافتراضية0
الحجم32/64-bit depends on the type of platform.
نطاق القيم:-2,147,483,648 إلى 2,147,483,647 (منصة 32 بت)
-9223372036854775808 إلى 9223372036854775807 (منصة 64 بت)
هناك العديد من أنواع البيانات العددية مثل UInt، Int8، Int16 وما إلى ذلك. الأكثر استخدامًا هو Int.
إذا كنت بحاجة إلى تحديد حجم أو نوع العدد الذي يمكن أن يحتويه المتغير أو الثابت، يمكنك استخدام UInt، Int8، Int16 وما إلى ذلك بشكل أكثر تفصيلاً لتحفظها، وسنشرح هذه الأشياء أدناه.
var highScore:Int = 100 print(highScore) highScore = -100 print(highScore)
عند تشغيل البرنامج، الناتج هو:
100 -100
في المثال السابق، قمنا بتعريف متغير من النوع Int. أولاً، قمنا بتعيينه إلى 100، لذا تم طباعة print (highScore) 100 على الشاشة.
لاحقاً، استخدمنا محو المحول assignment operator highScore =-100 لتحديث القيمة إلى -100، لذا، تم طباعة (highScore) output-100 على الشاشة.
دعونا نرى بعض أنواع Int في Swift.
أحد أنواع الأعداد الصحيحة التي يمكنها تخزين الأرقام الإيجابية والسلبية.
القيمة الافتراضية0
الحجم8-bit
المجالمن -128 إلى 127
يمكن لمتغير Int8 أن يحتوي على مجموع 8 =(256) القيم. أي يمكنها تخزين الأرقام من 0 إلى 255.
ولكن نظرًا لأن Int8 يشمل الأرقام الإيجابية والسلبية، يمكننا تخزين الأرقام من -128 إلى 127، بما في ذلك 0، مما يعني 256 قيمة أو رقم في المجموع.
var highScore:Int8 = -128// صحيح highScore = 127 // صحيح highScore = 128 // خطأ highScore = -129 // خطأ
يمكنك أيضًا استخدام وظائف Swift البناة المدمجة .min و .max تجد أكبر وأصغر القيم التي يمكن أن تخزنها النوع.
مثال 3: أكبر وأصغر نوع البيانات Int8
print(Int8.min) print(Int8.max)
عند تشغيل البرنامج، الناتج هو:
-128 127
أحد أنواع المتغيرات العددية، يُدعى UInt (unsigned integer)، يمكنه تخزين الأرقام غير الموقعة فقط (الأرقام الإيجابية أو الصفر).
القيمة الافتراضية0
الحجم32/64-bit depends on the type of platform.
المجالمن 0 إلى 4294967295 (منصة 32-bit)
من 0 إلى 18446744073709551615 (منصة 64-bit)
مثال 4: نوع البيانات UInt
var highScore:UInt = 100 highScore = -100 // خطأ في وقت التجميع
الكود المذكور أعلاه سيقوم بإلقاء خطأ في وقت التجميع، لأن الأعداد الصحيحة غير الموقعة يمكنها تخزين 0 أو القيم الإيجابية فقط. سيؤدي محاولة تخزين قيمة سلبية في عدد صحيح غير موقعة إلى إلقاء خطأ.
يمكن للمتغيرات أو الثوابت المعلن عنها كـ floating-point أن تخزن الأرقام الموجودة بالأرقام أو الأرقام الموجودة بالأرقام.
القيمة الافتراضية0.0
الحجم32-bit floating-point number.
المجال1.2 * 10 -38إلى 3.4 * 10 38(حتى 6 أرقام)
let highScore:Float = 100.232 print(highScore)
عند تشغيل البرنامج، الناتج هو:
100.232
المتغيرات أو الثوابت المعلن عنها كـ Double ستخزن أيضًا الأرقام الموجودة بالأرقام أو الأرقام الموجودة بالأرقام، ولكنها أكبر من الأرقام التي يدعمها Float
القيمة الافتراضية0.0
الحجم64-bit floating-point number. (Therefore, variables of type Double can store numbers with decimals or decimal points larger than those supported by Float)
المجال2.3×10 -308~1.7 * 10 308(~15 digits)
let highScore:Double = 100.232321212121 print(highScore)
عند تشغيل البرنامج، الناتج هو:
100.232321212121
يمكن لتغيرات أو المعرفات المعلنة كـ Character أن تخزن نص أحرف واحد.
يمكنك استخدام سلسلة التحويل \u{n} (حرف Unicode، n بأسلوب عشري) في Swift لاستخدام الرموز التعبيرية أو اللغات غير الإنجليزية كحرف.
let playerName:Character = "J" let playerNameWithUnicode:Character = "\u{134}" print(playerName) print(playerNameWithUnicode)
عند تشغيل البرنامج، الناتج هو:
J Ĵ
يمكن لتغيرات أو المعرفات المعلنة كـ String أن تخزن مجموعة الأحرف.
القيمة الافتراضية:""(فراغ)
هو نوع القيمة.
يمكنك استخدام دورة for-in لاستكشاف الكلمات المتعددة.الرجوع إلىدائرة for-in Swift.
يدعم Swift أيضًا سلاسل التحويل الخاصة لتشغيلها في الكلمات المتعددة. على سبيل المثال،
\0 (حرف الفاصلة العائمة)،
\\\ (شقطة عادية\)،
\t (شريط التبديل)،
\v (علامة الفئة العمودية)،
\r (العودة إلى البداية)،
\" (كلمات متعددة بديناميكية)،
\' (أحرف واحدة)، و
\u{n} (كلمة متعددة Unicode، n بأسلوب عشري).
let playerName = "Jack" let playerNameWithQuotes = "\"Jack\"" let playerNameWithUnicode = "\u{134}ack" print(playerName) print(playerNameWithQuotes) print(playerNameWithUnicode)
عند تشغيل البرنامج، الناتج هو:
Jack "Jack" Ĵack
يرجى الرجوع إلىSwift الأحرف والكلمات المتعددة،للحصول على معلومات أكثر حول إعلان، العمليات وامثلة الأحرف والكلمات المتعددة.
بالإضافة إلى هذا النوع من البيانات، هناك أنواع بيانات متقدمة أخرى في Swift مثل tuple,optional,range,class,structure الذي ستتعلمه في الفصول اللاحقة.
1.بسبب أن Swift لغة التكهن بالأنواع، يمكن التكهن نوع المتغير أو المعرف من القيمة المخزنة تلقائيًا. لذلك، يمكنك تجنب كتابة النوع عند إنشاء المتغير أو المعرف. ومع ذلك، يمكنك النظر في كتابة النوع من أجل الوضوح، ولكن ليس من المستحسن القيام بذلك.
مثال 9: متغيرات/قيم ثابتة التنبؤ النوعي
let playerName = "Jack" print(playerName)
يمكن لمحول Swift التنبؤ تلقائيًا بأن هذا المتغير نوع String بناءً على قيمته.
2. Swift لغة آمنة من حيث الأنواع. إذا تم تعريف المتغير كنوع معين، فإنه لا يمكن استخدامه لتحويل نوع بيانات آخر.
مثال 10: Swift لغة آمنة من حيث الأنواع
let playerName: String playerName = 55 // خطأ في وقت التجميع
الكود الموجود أعلاه سيكون خطأ لأننا قد نحن نحدد المتغير playerName كـ String. لذلك لا يمكننا تخزين عدد في ذلك.