English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا الدليل، ستتعلم استخدام الحروف والسلاسل في Swift. ستتعلم أيضًا العمليات المختلفة التي يمكنك تنفيذها على السلاسل والحروف.
الحرف هو علامة واحدة (حرف، رقم، إلخ). الحروف في Swift هي نوع Character، يتم إعلانها كالتالي:
let someCharacter:Character
يمكنك استخدام الأقواس المزدوجة “” لتعريف قيمة الحرف بنفس الطريقة التي تستخدمها للسلسلة، لكن يجب أن تحتوي الأقواس المزدوجة فقط على حرف واحد.
إذا كنت بحاجة إلى تضمين عدة حروف، فإنه يجب تعريفها كنوع String بدلاً من Character.
let someCharacter:Character = “H” let specialCharacter:Character = “@” print(someCharacter) print(specialCharacter)
عند تشغيل هذا البرنامج، الناتج هو:
H @
لكن، إذا حاولت تخصيص علامتين في السلسلة
/* سيكون هذا خطأً. تغيير النوع إلى 字符串 يمكن إصلاح المشكلة. */ let failableCharacter: Character = "H@" print(failableCharacter)
عند محاولة تشغيل الشيفرة السابقة، ستحصل على رسالة خطأ كما يلي:
Cannot convert value of type String to Character. (لا يمكن تحويل قيمة نوع String إلى Character.)
يمكنك أيضًا استخدام unicodes لإنشاء أنواع خاصة من الأحرف لتعبر عن رموز تعبيرية. يمكنك استخدام سلسلة النصوص المضمنة \u {n} لإنشاء Unicode (الرمز المميز Unicode، n هو الرقم السداسي).
let heartShape: Character = "\u{2665}" print(heartShape)
عند تشغيل هذا البرنامج، الناتج هو:
♥
في المثال السابق، تم إنشاء رمز القلب من قبل U + 2665. على الرغم من أن \u {2665} مضمونة بين علامات الهوامش، إلا أن المبرمج لن يعتبرها نمطًا لأننا استخدمنا سلسلة النصوص المضمنة \u {n}. لا تمثل سلسلة النصوص المضمنة النصوص نفسها.
الأنماط هي مجرد مجموعة من الأحرف. في Swift، الأنماط هي نوع String وتُعلن كالتالي:
let someString: String
يمكنك استخدامنص مكتوبتُخصص القيم باستخدام نوع String. النصوص المكتوبة هي مجموعة من الأحرف المحددة بين علامات الهوامش " ".
let someString: String = "Hello, world!" let someMessage = "I love Swift." print(someString) print(someMessage)
عند تشغيل هذا البرنامج، الناتج هو:
Hello, world! I love Swift.
في هذا السياق، "Hello,world!" و "i love Swift. " هي الأنماط المستخدمة لإنشاء متغيرات الأنماط someString و someMessage.
يحتوي String على بعض الدوال والمواصفات المدمجة لمعالجة العمليات الأكثر شيوعًا. على سبيل المثال: لتوصيل الأنماط، قم بتغييرها إلى صيغة كبيرة أو صيغة كبيرة. دعنا نستعرض بعض العمليات الشائعة:
يمكنك استخدامعمليات المقارنة (==) يتحقق ببساطة مما إذا كانت كلمتان متشابهتان. إذا كانت الكلمتان متشابهتان، فإن العنصر يعود إلى true، وإلا يعود إلى false.
مثال 5: مقارنة الأنماط في Swift
let someString = "Hello, world!" let someMessage = "I love Swift." let someAnotherMessage = "Hello, world!" print(someString == someMessage) print(someString == someAnotherMessage)
عند تشغيل هذا البرنامج، الناتج هو:
false true
يمكنك استخدامعمليات الحساب المركبة (+) أو يمكن استخدامعمليات الحساب المركبة (+=) يضيفان قيمتين نصيتين مختلفتين. يمكنك أيضًا استخدام طريقة append للاضافة على حرف/سلسلة نصية.
مثال 6: ربط النصي في Swift
let helloStr = "Hello, " let worldStr = "World" var result = helloStr + worldStr print(result) result.append("!") print(result)
عند تشغيل هذا البرنامج، الناتج هو:
Hello, World Hello, World!
في البرنامج المذكور أعلاه، قمنا بإنشاء سلسلة نصية من خلال الربط باستخدام + وعمليات الحساب المركبة.النص result. لذلك، helloStrworldStrprint(result)، سيعرض على الشاشةHello،World.
يمكنك أيضًا استخدام طريقة append للاضافة على أي حرف أو سلسلة نصية. result.append("!") لتحديد حرف ! في نهاية السلسلة. لذلك، print(result)، سيعرض على الشاشةHello،World!.
ربط النصي باستخدام عمليات الحساب المركبة
يمكننا أيضًا استخدام عمليات الحساب المركبة (+=) للربط النصي.
مثال 7: استخدام عمليات الحساب المركبة += للربط النصي
var helloStr = "Hello, " let worldStr = "World!" helloStr += worldStr print(helloStr)
عند تشغيل هذا البرنامج، الناتج هو:
Hello, World!
لاحظ أن تم استخدام var بدلاً من let في helloStr. إذا كنت قد استخدمت let لتعريف helloStr كمعلمة ثابتة، فإنك لن تستطيع استخدام عمليات الحساب المركبة += لتغييرها، مما يؤدي إلى خطأ. لذلك، يجب عليك تعريف helloStr كمعلمة.
هذا عملية بسيطة، سلسلة نصية محددة، تتضمن المتغيرات، القيم الثابتة، إلخ. افترض أن لديك اسم اللاعب ودرجة التقييم مخزنين في قيمتين ثابتتين، مثلما يلي:
let playerName = "Jack" let playerScore = 99
الآن، تحتاج إلى عرض رسالة على اللاعب،تهانيجاك!أعلى نتيجة لك هي 99هنا، تحتاج إلى طريقة لاستخدام القيم الثابتة في سلسلة واحدة.
هذا يمكن تحقيقه باستخدام السلسلة النصية:
let congratsMessage = "تهاني " + playerName + "!. إن أعلى نتيجة لك هي " + playerScore + "." print(congratsMessage)
لكن، الطريقة السابقة ليست واضحة.
إذن، هناك طريقة سهلة لعرض الرسائل باستخدام التكامل في النصوص.
ينبغي وضع المتغيرات أو القيم الثابتة في النصوص المباشرة بين أقواس مزدوجة ( )، ويجب وضع الرمز المائلتان كأول حرف (\).
let playerName = "Jack" let playerScore = 99 let congratsMessage = "تهاني\(playerName)!. إن أعلى نتيجة لك هي \(playerScore)." print(congratsMessage)
عند تشغيل هذا البرنامج، الناتج هو:
تهاني Jack! إن أعلى نتيجة لك هي 99.
هذا الدالة تحدد ما إذا كانت النصوص فارغة. إنها تعطي true إذا كانت النصوص فارغة، وإلا تعطي false.
var emptyString = "" print(emptyString.isEmpty)
عند تشغيل هذا البرنامج، الناتج هو:
true
هذا الخصائص يستخدم لتحويل كل كلمة في النص إلى أحرف كبيرة.
let someString = "hello, world!" print(someString.capitalized)
عند تشغيل هذا البرنامج، الناتج هو:
Hello, World!
دالة الكتابة الكبيرة تحول النص إلى أحرف كبيرة، ودالة الكتابة الصغيرة تحول النص إلى أحرف صغيرة.
let someString = "Hello, World!" print(someString.uppercased()) print(someString.lowercased())
عند تشغيل هذا البرنامج، الناتج هو:
HELLO, WORLD! hello, world!
هذا الخصائص يستخدم لحساب عدد الأحرف في النص.
let someString = "Hello, World!" print(someString.count)
عند تشغيل هذا البرنامج، الناتج هو:
13
هذا الدالة تحدد ما إذا كانت النصوص تبدأ بـحرف معين، وتعطي قيمة بولية. إذا كانت النصوص المقدمة تطابق القيمة المقدمة، فإنها تعطي true، وإلا تعطي false.
let someString = "Hello, World!" print(someString.hasPrefix("Hell")) print(someString.hasPrefix("hell"))
عند تشغيل هذا البرنامج، الناتج هو:
true false
هذه الوظيفة تحدد ما إذا كانت الكلمة المفتوحة تنتهي بتحديد حرف معين وتقوم بتقديم قيمة منطقية. إذا كانت الكلمة المفتوحة تتطابق مع القيمة المقدمة، فإنها تعود إلى true، وإلا تعود إلى false.
print(someString.hasSuffix("rld!")) print(someString.hasSuffix("Rld!"))
عند تشغيل هذا البرنامج، الناتج هو:
true false