عقد كائنات سلسلة تسلسل مرتبة من وحدات البايت ، وعادة ما تكون الأحرف ، عادة لتشكيل أجزاء من نص يمكن قراءته بواسطة الإنسان. إنها نوع كائن شائع جدًا في جميع لغات البرمجة ، و روبي يحتوي على عدد من الطرق عالية المستوى وبعض الطرق منخفضة المستوى لإنشاء كائنات سلسلة والوصول إليها ومعالجتها.
غالبًا ما يتم إنشاء السلاسل باستخدام سلسلة حرفية. أ حرفية هو بناء خاص في لغة روبي يخلق كائنًا من نوع معين. فمثلا، 23 هي حرفية تخلقFixnum موضوع. أما بالنسبة لسلسلة الأحرف ، فهناك عدة أشكال.
علامات الاقتباس المفردة والسلاسل المزدوجة
معظم اللغات لها سلسلة حرفية مماثلة لهذا ، لذلك قد يكون هذا مألوفًا. أنواع الاقتباسات "(اقتباس واحد ، فاصلة عليا أو اقتباس صعب) و "(اقتباس مزدوج أو اقتباس ناعمتُستخدم لتضمين حرفية السلسلة ، أي شيء بينهما سيتم تحويله إلى كائنات سلسلة. يوضح المثال التالي هذا.
ولكن هناك بعض الاختلافات بين علامات الاقتباس المفردة والمزدوجة. اقتباسات مزدوجة أو اقتباسات ميسرة تمكن بعض السحر من أن يحدث وراء الكواليس. الأكثر فائدة هو الاستيفاء داخل السلاسل ، وهو مفيد لإدخال قيمة متغير في منتصف سلسلة. يتم تحقيق ذلك باستخدام
#{ … } تسلسل. سيطلب منك المثال التالي اسمك وتحييك ، وذلك باستخدام الاستيفاء لإدراج اسمك في السلسلة الحرفية المطبوعة.لاحظ أن أي رمز يمكن أن يدخل داخل الأقواس ، وليس فقط أسماء المتغيرات. سيقوم روبي بتقييم هذا الرمز وكل ما يتم إرجاعه سيحاول إدراجه في السلسلة. لذا يمكنك القول بسهولة "مرحبًا ، # {gets.chomp}" ونسيان اسم متغير. ومع ذلك ، من الجيد عدم وضع عبارات طويلة داخل الأقواس.
علامات الاقتباس المفردة ، الفواصل العليا ، أو اقتباسات صعبة أكثر تقييدًا. داخل علامات الاقتباس المفردة ، لن يقوم روبي بأي استيفاء أو تسلسلات الهروب بخلاف الهروب من حرف الاقتباس المفرد والشرطة المائلة العكسية نفسها (\' و \\ على التوالي). إذا كنت لا تنوي استخدام الاستيفاء ، فمن المستحسن استخدام علامات الاقتباس الفردية في كثير من الأحيان.
سيحاول المثال التالي إقحام متغير داخل علامات الاقتباس المفردة.
إذا قمت بتشغيل هذا فلن تحصل على أي خطأ ، ولكن ماذا ستتم طباعته؟
تم تمرير تسلسل الاستيفاء من خلال غير مترجم.
متى يجب علي استخدام عروض أسعار مفردة ومزدوجة
هذه مسألة أسلوب. يفضل البعض استخدام علامات الاقتباس المزدوجة طوال الوقت ما لم تصبح غير ملائمة. يفضل البعض الآخر استخدام علامات الاقتباس المفردة ما لم يكن المقصود من سلوك الاستيفاء. لا يوجد شيء بطبيعته خطير حول استخدام علامات الاقتباس المزدوجة طوال الوقت ، لكنها تجعل قراءة بعض التعليمات البرمجية أسهل. لا تحتاج إلى قراءة سلسلة عند قراءة التعليمات البرمجية إذا كنت تعرف أنه لا يوجد استيفاء فيها لأنك تعرف أن السلسلة نفسها لن يكون لها أي آثار جانبية. إذن أي شكل حرفي تستخدمه متروك لك ، لا توجد طريقة صحيحة وخاطئة حقيقية هنا.
تسلسلات الهروب
ماذا لو كنت تريد ، في سلسلة حرفية ، تضمين حرف اقتباس؟ على سبيل المثال ، السلسلة قال ستيف "مو!" لن يعمل. ولن يفعل ذلك "لا يمكن لمس هذا!". يتضمن كل من هذه السلاسل حرف الاقتباس داخل السلسلة ، وينهي فعليًا السلسلة الحرفية ويسبب خطأ في بناء الجملة. يمكنك تبديل أحرف الاقتباس ، مثل قال ستيف "مو!"، لكن هذا لا يحل المشكلة حقًا. بدلاً من ذلك ، يمكنك الهروب من أي حرف اقتباس داخل السلسلة ، وستفقد معناها الخاص (في هذه الحالة ، المعنى الخاص هو إغلاق السلسلة).
للهروب من شخصية ، قم بتثبيتها بخط مائل. تخبر شخصية الخط المائل العكسي روبي بتجاهل أي معنى خاص قد يكون لدى الشخصية التالية. إذا كان حرف اقتباس مطابق ، فلا تنهي السلسلة. إذا كانت علامة تجزئة ، فلا تبدأ كتلة استيفاء. يوضح المثال التالي استخدام الخط المائل العكسي للهروب من الأحرف الخاصة.
يمكن استخدام حرف الخط المائل العكسي لإزالة أي معنى خاص من الحرف التالي ، ولكن ، بشكل مربك ، يمكن استخدامه أيضًا للإشارة إلى سلوك خاص في سلاسل مزدوجة الاقتباس. معظم هذه السلوكيات الخاصة لها علاقة بإدراج الأحرف وتسلسلات البايت التي لا يمكن كتابتها أو تمثيلها بصريًا. ليست كل السلاسل عبارة عن سلاسل أحرف أو قد تحتوي على تسلسلات تحكم مخصصة للجهاز الطرفي ، وليس للمستخدم. يمنحك روبي القدرة على إدراج هذه الأنواع من السلاسل باستخدام حرف الخط المائل العكسي.
- \ n - حرف سطر جديد. ال يضع الطريقة تقوم بذلك تلقائيًا ، ولكن إذا كنت ترغب في إدراج واحدة في وسط سلسلة نصية ، أو إذا كانت السلسلة مخصصة لشيء آخر غير يضع الطريقة ، يمكنك استخدام هذا لإدراج سطر جديد في سلسلة.
- \ t - حرف جدولة. يقوم حرف علامة التبويب بتحريك المؤشر فوق (في معظم الأجهزة الطرفية) إلى مضاعفات 8 ، لذلك هذا مفيد جدًا لعرض البيانات الجدولية. ومع ذلك ، هناك طرق أفضل للقيام بذلك ، واستخدام حرف علامة التبويب يعتبر قديمًا أو مخترقًا.
- \ nnn - تشير الشرطة المائلة للخلف متبوعة بثلاثة أرقام إلى حرف ASCII ممثلة بثلاثة أرقام ثمانية. لماذا ثماني؟ في الغالب لأسباب تاريخية.
- \ xnn - شرطة مائلة للخلف و x ورقمان سداسيان. نفس الإصدار الثماني ، فقط بالأرقام السداسية.
ربما لن تستخدم معظم هذه الميزات أبدًا ، لكنك تعلم أنها موجودة. وتذكر أيضًا أنهم يعملون فقط في سلاسل مزدوجة الاقتباس.
تناقش الصفحة التالية سلاسل متعددة الأسطر وبنية بديلة لسلسلة حرفية.
سلاسل متعددة الخطوط
معظم اللغات لا تسمح بالحروف الحرفية متعددة الخطوط ، لكن روبي تفعل ذلك. ليست هناك حاجة لإنهاء سلاسلك وإلحاق المزيد من السلاسل للسطر التالي ، يعالج Ruby الحرف الحرفية لسلسلة متعددة الأسطر تمامًا مع الإعداد الافتراضي بناء الجملة.
بناء الجملة البديلة
كما هو الحال مع معظم الحرفيين الآخرين ، يوفر Ruby صيغة بديلة للحروف الحرفية. إذا كنت تستخدم الكثير من أحرف الاقتباس داخل حرفيتك ، على سبيل المثال ، فقد ترغب في استخدام بناء الجملة هذا. عندما تستخدم بناء الجملة هذا هو مسألة أسلوب ، فعادةً ما تكون غير ضرورية للسلاسل.
لاستخدام بناء الجملة البديل ، استخدم التسلسل التالي للسلاسل ذات علامات الاقتباس المفردة ٪ q {…}. وبالمثل ، استخدم بناء الجملة التالي للسلاسل المزدوجة بين علامتي الاقتباس ٪ Q {…}. يتبع هذا التركيب البديل نفس القواعد التي يتبعها أبناء عمومتهم "العاديون". لاحظ أيضًا أنه يمكنك استخدام أي أحرف تريدها بدلاً من الأقواس. إذا كنت تستخدم قوسًا أو قوسًا مربعًا أو قوس زاوية أو قوسًا ، فسيؤدي الحرف المطابق إلى إنهاء الحرف. إذا كنت لا تريد استخدام أحرف مطابقة ، فيمكنك استخدام أي رمز آخر (أي شيء ليس حرفًا أو رقمًا). سيتم إغلاق الحرف الحرفي برمز آخر من نفس الرمز. يوضح لك المثال التالي عدة طرق لاستخدام بناء الجملة هذا.
يعمل بناء الجملة البديل أيضًا كسلسلة متعددة الأسطر.