نتائج البحث

اذهب إلى التنقل اذهب إلى البحث

do-while في PHP

(PHP 4, PHP 5, PHP 7) حلقات do-while مشابهة جدًّا لحلقات while، باستثناء أنّها عملية التحقق من الشرط تحدث في نهاية الدورة بدلًا من بدايتها. ما يميز هذه الحلقات عن حلقات while هو أنّ الدورة الأولى في حلقات do-while ستنفّذ في جميع الأحوال (تحدث عملية التحقق في نهاية الدورة فقط) في حين أن الدورة الأولى في حلقات while قد لا تنفّذ بالضرورة (تحدث عملية التحقق في بداية كل دورة، وإن كانت النتيجة FALSE منذ البداية تتوقف الحلقة عن العمل مباشرة). ...

do-while في PHP

(PHP 4, PHP 5, PHP 7) حلقات do-while مشابهة جدًّا لحلقات while، باستثناء أنّها عملية التحقق من الشرط تحدث في نهاية الدورة بدلًا من بدايتها. ما يميز هذه الحلقات عن حلقات while هو أنّ الدورة الأولى في حلقات do-while ستنفّذ في جميع الأحوال (تحدث عملية التحقق في نهاية الدورة فقط) في حين أن الدورة الأولى في حلقات while قد لا تنفّذ بالضرورة (تحدث عملية التحقق في بداية كل دورة، وإن كانت النتيجة FALSE منذ البداية تتوقف الحلقة عن العمل مباشرة). ...

do...while في JavaScript

التعبير البرمجي do...while يُنشِئ حلقة تكرار تُنفِّذ تعبيرًا برمجيًا معيّنًا إلى أن يصبح الشرط غير محقق (false)، وسيتم التحقق من الشرط بعد تنفيذ التعبير البرمجي، مما يؤدي إلى تنفيذ التعبير البرمجي المُعيّن مرةً واحدةً على الأقل. البنية العامة do statement while (condition); statement  التعبير البرمجي الذي سيُنفَّذ مرةً واحدةً على الأقل وسيُعاد تنفيذه في كل مرة يكون فيها الشرط محققًا (أي true)؛ ولتنفيذ أكثر من تعبير برمجي فاستخدام الأقسام الكتلية (block statement) { ... } لتجميع هذا التعابير. condition ...

الحلقة do...while التكرارية في أردوينو

تعمل الحلقة do...while التكرارية بنفس الطريقة التي تعمل بها الحلقة while باستثناء أنه يُتحقق من الشرط في نهاية الحلقة وليس في بدايتها. هذا يعني أنَّ الحلقة ستُنفَّذ مرة واحدة على الأقل. البنية العامة do { // الكتلة البرمجية المراد تكرار تنفيذها } while (condition); الشرط condition هو تعبير منطقي وسيُقيَّم على أنه إمَّا true أو false. أمثلة مثالٌ عن استعمال الحلقة do...while في قراءة قيمةٍ من حساس وانتظار بلوغها حدًّا معيَّنًا: do { delay(50); ...

التابع TracePoint.defined_class‎ في روبي

يُعيد التابع defined_class صنف أو وحدة التابع المُستدعى. class C; def foo; end; end trace = TracePoint.new(:call) do |tp| p tp.defined_class #=> C end.enable do C.new.foo end إذا تم تعريف التابع بواسطة وحدة، فستعاد تلك الوحدة. module M; def foo; end; end class C; include M; end; trace = TracePoint.new(:call) do |tp| p tp.defined_class #=> M end.enable do C.new.foo end ملحوظة: يُعيد التابع defined_class صنفًا مفردًا (singleton class). وسيط الكتلة السادس في التابع Kernel.set_trace_func يُمرَّر الصنف الأصليً (original class) للكائن عبر الصنف المفرد. هذا أحد الفوارق ...

الصنف Signal في روبي

تسمح العديد من أنظمة التشغيل بإرسال إشارات إلى العمليات (processes) قيد التشغيل للتحكم بها. بعض الإشارات لها تأثير محدد على العملية، بينما تكون أخرى مرتبطة بالشيفرة البرمجية، وتتصرف بناء عليها. على سبيل المثال، قد تقوم العملية بإمساك (trap) الإشارة USR1 واستخدامها في عملية التنقيح (debugging)، أو قد تُستخدَم الإشارة TERM لبدء إيقاف تشغيل العملية بشكل مُراقَب. pid = fork do Signal.trap("USR1") do $debug = !$debug puts "Debug now: #$debug" end Signal.trap("TERM") ...

حلقة until في Bash

كيفية عمل حلقة until تشبه هذه الحلقةُ التكرارية حلقةَ while باستثناء أن الحلقة هنا تُنفَّذ إلى أن يُنفَّذ أمر اختباري TEST-COMMAND بنجاح، فتظل الحلقة عاملة طالما كان تنفيذ الأمر الاختباري يفشل. والبنية اللغوية لها تشبه البنية اللغوية لحلقة while : until TEST-COMMAND; do CONSEQUENT-COMMANDS; done وحالة الإعادة لهذه الحلقة هي نفسها حالة الخروج لآخر أمر يُنفَّذ من الأوامر التابعة CONSEQUENT-COMMANDS أو تكون صفرًا إن لم يُنفَّذ أي أمر. وقد يكون الأمر الاختباري TEST-COMMAND أي أمر يمكن أن يخرج بحالة نجاح أو فشل، ...

حلقة while في Bash

كيفية عمل حلقة while تسمح حلقة while التكرارية بالتنفيذ المتكرر لقائمة أوامر طالما أن الأمر المتحكم في حلقة while يُنفَّذ بنجاح (حالة خروجه صفر). والبنية اللغوية لهذه الحلقة هي: while CONTROL-COMMAND; do CONSEQUENT-COMMANDS; done حيث يرمز CONTROL-COMMAND -وهو الأمر الذي سيتحكم في الحلقة- إلى أي أمر يخرج بحالة فشل أو نجاح، بينما قد تكون CONSEQUENT-COMMANDS -وهي الأوامر التي ستُكرَّر- أي برنامج أو برنامج للصدفة أو أحد بُنى الصدفة المختلفة. وتخرج الحلقة فور فشل الأمر المتحكِّم فيها، وإن كانت الحلقة في برنامج ...

الخيوط وتنفيذ الشيفرة في ريلز

بعد قراءة هذا الدليل، ستتلعم: ما هي شيفرة ريلز التي ستُنفَّذ تلقائيا في وقت واحد. كيفية دمج التزامن اليدوي مع أجزاء ريلز الداخلية. كيفية تغليف كل شيفرة التطبيق. كيف التأثير على عملية إعادة تحميل التطبيق. التزامن التلقائي تسمح ريلز تلقائيًا بإجراء عمليات مختلفة في نفس الوقت. عند استخدام خادم ويب ذي خيوط، مثل الخادم Puma الافتراضي، ستُخدَّم طلبات HTTP متعددة في وقت واحد؛ تقدم مع كل طلب نسخة لوحدة التحكم الخاص به. محولات Active Job التي تدعم تعدد الخيوط، تتضمن ...

سلاسل التوثيق النصية في بايثون

يمكن أن تكون العبارة الأولى في كتلة الدالة سلسلة نصّية، وتمثّل سلسلة التوثيق النصية الخاصة بتلك الدالة ويطلق عليها أيضًا تسمية docstring. هناك أدوات تستخدم سلاسل التوثيق النصية لإنتاج توثيق عبر شبكة الإنترنت، أو تسمح للمستخدم بتصفح الشيفرة بصورة تفاعلية؛ لذا ينصح باستخدام سلاسل التوثيق النصية في الشيفرة التي تكتبها. يجب أن يكون السطر الأول قصيرًا ومقتضبًا ويقدّم لمحة مختصرة عن الغرض من إنشاء الكائن، ولأجل الاختصار يجب أن لا يتضمن السطر الأول اسم الكائن أو نوعه؛ فهناك وسائل أخرى ...

سلاسل التوثيق النصية في بايثون

يمكن أن تكون العبارة الأولى في كتلة الدالة سلسلة نصّية، وتمثّل سلسلة التوثيق النصية الخاصة بتلك الدالة ويطلق عليها أيضًا تسمية docstring. هناك أدوات تستخدم سلاسل التوثيق النصية لإنتاج توثيق عبر شبكة الإنترنت، أو تسمح للمستخدم بتصفح الشيفرة بصورة تفاعلية؛ لذا ينصح باستخدام سلاسل التوثيق النصية في الشيفرة التي تكتبها. يجب أن يكون السطر الأول قصيرًا ومقتضبًا ويقدّم لمحة مختصرة عن الغرض من إنشاء الكائن، ولأجل الاختصار يجب أن لا يتضمن السطر الأول اسم الكائن أو نوعه؛ فهناك وسائل أخرى ...

التابع TracePoint.new‎ في روبي

يُعيد التابع new متعقبًا جديدًا غير مفعَّل افتراضيًّا. راجع صفحة الصنف TracePoint للتعرف على الأحداث الممكنة ولمزيد من المعلومات. يجب إعطاء كتلة للتابع، وإلا سيُطلق الاستثناء ArgumentError. البنية العامة new(*events) { |obj| block } → obj‎ المعاملات events‎ أحداث يراد إنشاء تعقب لها. القيمة المعادة يعاد متعقبٌ جديدٌ للأحداث events. أمثلة من أجل تفعيل التعقب بعد إنشائه باستعمال التابع new، يجب عليك استخدام التابع enable: trace = TracePoint.new(:call) do |tp| p [tp.lineno, tp.defined_class, tp.method_id, tp.event] end #=> #<TracePoint:disabled> trace.enable #=> false puts "Hello, ...

التابع Fiber.transfer في روبي

ينقل التّابع transfer التحكّم إلى ليف (fiber) آخر، أو يستأنف عمل الليف الحالي عند آخر نقطة أوقف فيها، أو يبدأه إذا لم يُستأنَف سابقًا. سيُعلَّق الليف المُستدعَى كما في استدعاء Fiber.yield. يجب عليك طلب 'fiber' قبل استخدام هذا التّابع. يعامل الليف طلب التحويل ( عبر transfer) الذي يستقبله على أنَّه نداء استئنافٍ. الوسائط المُمرَّرة من أجل التحويل تعامل كتلك المُمرَّرة من أجل الاستئناف. لا يمكنك استئناف ليفٍ حُوِّل تحكمه إلى ليفٍ آخر. سيسبّب هذا خطأ استئنافٍ مضاعفٍ. عليك إعادة تحويل ...

التابع Module.used_modules‎ في روبي

يعيد التابع used_modules مصفوفة تحتوي جميع الوحدات (modules) المستخدمة في النطاق الحالي. ترتيب الوحدات في المصفوفة الناتجة غير محدد. البنية العامة used_modules → array‎ القيمة المعادة تعاد مصفوفة تحتوي جميع الوحدات (modules) المستخدمة في النطاق الحالي. أمثلة مثال على استخدام التابع used_modules‎: module A refine Object do end end module B refine Object do end end using A using B p Module.used_modules‎ ناتج تنفيذ الشيفرة هو: [B, A] انظر أيضا التابع using: يستورد الأصناف المهذبة (class refinements) من الوحدة في التعريف الحالي للصنف أو الوحدة. ...

تعابير التحكم في روبي

لدى لغة روبي العديد من الطرق للتحكم في مسار تنفيذ البرنامج، وكل البنى المذكورة هنا تعيد قيمةً. في الاختبارات الشرطيّة في بنى التحكّم، تعدّ القيمة nil و false على أنّها قيم خطأ، بينما تُعدُّ القيمة true وأيّ كائن آخر على أنه قيم صحيحة. وفي هذا التوثيق، سنستخدم true للتعبير عن القيم الصحيحة و false للتعبير عن القيم الخطأ. بنية If الشرطية أبسط أشكال بنية if الشرطيّة يحتوي على جزأين، الاختبار الشّرطي، والجزء التّنفيذي then. هذه بنية if بسيطة: if true ...

التوجيه من الخارج إلى الداخل في ريلز

يغطي هذا الدليل الميزات التي يواجهها المستخدم في عمليات التوجيه في ريلز. بعد قراءة هذا الدليل، ستعرف: كيفية تفسير الشيفرة في config/routes.rb. كيفية بناء المسارات الخاصة بك باستخدام إما أسلوب الحيلة (resourceful style) المفضل أو طريقة المطابقة (match method). كيفية الإعلان عن معاملات المسار الموجه، والتي تمرر إلى إجراءات وحدة التحكم (controller actions). كيفية إنشاء المسارات وعناوين URL تلقائيًا باستخدام مساعدي المسار الموجه. التقنيات المتقدمة مثل إنشاء قيود وتثبيت نقاط نهاية Rack. الغرض من توجيه المسارات في ريلز يتعرف جهاز ...

حلقة for في Bash

كيفية عمل حلقة for التكرارية حلقة for هي أول وحدة تكرارية في الصدفة من بين ثلاث وحدات، وتسمح تلك الحلقة بتخصيص قائمة من القِيَم، وتُنفَّذ قائمة من الأوامر لكل قيمة من تلك القيم. والبنية اللغوية لهذه الحلقة التكرارية هي كالآتي: for NAME [in LIST ]; do COMMANDS; done إن لم تكن [ in LIST] موجودة فيتم استبدال @$ in بها، وتنفذ for الأوامر (COMMANDS) مرة واحدة لكل معامل موضعي مضبوط على قيمة، انظر المتغيرات في Bash وفحص وسائط سطر الأوامر. وتكون ...

التابع Location.label‎ في روبي

يعيد التابع label تسمية هذا الإطار. عادة ما تتألف النتيجة من اسم التابع والصنف والوحدة ...الخ. الأسماء ستكون مزخرفة. البنية العامة label() القيمة المعادة تعاد تسمية هذا الإطار. أمثلة مثال على استخدام التابع label‎: def foo puts caller_locations(0).first.label 1.times do puts caller_locations(0).first.label 1.times do puts caller_locations(0).first.label end end end‎ نتيجة استدعاء foo هي: label: foo label: block in foo label: block (2 levels) in foo‎ انظر أيضًا التابع base_label: ...

التابع Thread.priority=‎ في روبي

يعين التابع priority عند استدعائه بالشكل priority= integer أولوية المهمة الفرعية التي استدعيت معه إلى القيمة integer. سيتم تشغيل المهام الفرعية ذات الأولوية العالية بشكل أكثر تكرارًا من مثيلاتها ذات الأولوية المنخفضة (ولكنها ستشُغّل على أي حال). هذا مجرد تلميح يستعمله مُجدوِل المهام الفرعية (thread scheduler) في روبي. قد يتم تجاهله على بعض الأنظمة التشغيل. البنية العامة priority= integer→ thr‎ أمثلة مثال على استخدام التابع priority=‎: count1 = count2 = 0 a = Thread.new do loop ...

التابع Enumerator.each_with_object في روبي

يكرر التابع each_with_object الكتلة المعطاة على كل عنصر من عناصر الكائن الذي استدعي معه مع كائن آخر اعتباطي (الكائن المُمرَّر إليه). إن لم تُعطَ أية كتلة، فسيعيد التابع كائنًا جديدًا من النوع Enumerator. البنية العامة each_with_object(obj) {|(*args), obj| ... } each_with_object(obj) المعاملات obj الكائن الذي سيُكرَّر مع كل عنصر من عناصر الكائن المعطى. القيمة المعادة يعاد الكائن obj المعطى، أو يعاد كائن جديد من النوع Enumerator إن لم تُعطَ أية كتلة. أمثلة مثال على استعمال التابع each_with_object: to_three = Enumerator.new do |y| ...

التابع Enumerator.with_object في روبي

يكرِّر التابع with_object الكتلة المعطاة على كل عنصر من عناصر المُعدِّد الذي استدعي معه مع كائن اعتباطي (الكائن المُمرَّر إليه) ثم يعيد هذا الكائن. إن لم تُعطَ الكتلة، فسيعيد التابع كائنًا جديدًا من النوع Enumerator. البنية العامة with_object(obj) {|(*args), obj| ... } with_object(obj) المعاملات obj الكائن الذي سيُكرَّر مع كل عنصر من عناصر الكائن المعطى. القيمة المعادة يعاد الكائن obj المعطى، أو يعاد كائن جديد من النوع Enumerator إن لم تُعطَ أية كتلة. أمثلة مثال على استعمال التابع with_object: to_three = Enumerator.new do |y| 3.times ...

تهجيرات Active Record في ريلز

التهجيرات (Migrations) هي ميزة من Active Record التي تمكّنك من تحديث مخطط قاعدة البيانات على مر الوقت. بدلًا من كتابة تعديلات قاعدة البيانات باستخدام SQL، تمكّنك التهجيرات من كتابة تعليمات DSL باستخدام روبي لتحديث جداولك. بعد قراءة هذا الدليل، ستتعرَّف على: المولِّدات التي تستطيع استعمالها لإنشاء التهجيرات. التوابع التي يوفرها Active Record لتعديل قاعدة البيانات. المهام bin/rails التي تعدِّل وتتحكم بالتهجيرات والمخطط (schema) الخاص بك. العلاقة بين التهجيرات والملف schema.rb. نظرة عامة على التهجيرات إن التهجيرات هي طريقة مناسبة وسلسة ...

التابع Hash.default في روبي

يضبط التابع default عند استدعائه بالشكل default = obj القيمة الافتراضية obj وهي القيمة التي ستُعاد لمفتاح غير موجود في الكائن Hash. لا يستطيع هذا التابع ضبط القيمة الافتراضية للعملية Proc التي ستُنفَّذ عند كل بحث عن مفتاح غير موجود. البنية العامة default = obj → obj القيمة المعادة تعاد القيمة الافتراضية obj التي ستُعاد لمفتاح غير موجود في الكائن Hash المعطى بعد تعيينها. أمثلة مثال على استعمال التابع default: h = { "a" => 100, "b" => 200 } h.default = ...

الصنف Queue في روبي

يُنفِّذ الصنف Queue طوابير الانتظار متعدِّدة المنتجين (multi-producer)، ومتعدِّدة المستهلكين (multi-consumer). إنَّه مفيدٌ بشكلٍ خاصٍّ في البرمجة المعتمدة على الخيوط (threaded programming) عندما يتحتَّم على المعلومات أن تُتبادل بأمان بين خيوطٍ (threads) متعدَّدة. يُنفِّذ الصنف Queue كل دلالات القفل المطلوبة. يُنفِّذ الصنف طوابير الانتظار التي من النوع FIFO (من يدخل أولًا يخرج أولًا). في هذا النوع، المهام التي تضاف أولًا في الطابور هي المهام التي تعاد أولًا منه. queue = Queue.new producer = Thread.new do 5.times do |i| ...

الصنف Location في روبي

تمثّل كائنات الصنف Location إطارات المكدس (stack frames)، وتُنشأ بواسطة التابع Kernel.caller_locations. إليك مثلًا الشيفرة التالية: # caller_locations.rb def a(skip) caller_locations(skip) end def b(skip) a(skip) end def c(skip) b(skip) end c(0..2).map do |call| puts call.to_s end‎ تشغيل الأمر ruby caller_locations.rb سوف ينتج: caller_locations.rb:2:in `a' caller_locations.rb:5:in `b' caller_locations.rb:8:in `c'‎ إليك مثالًا آخر بنتيجة مختلفة بعض الشيء: # foo.rb class Foo attr_accessor :locations def initialize(skip) @locations = caller_locations(skip) end end Foo.new(0..2).locations.map do |call| puts call.to_s end‎ الآن، إن قمت بتنفيذ ruby foo.rb، فيجب أن ترى ...

اختبار تطبيقات ريلز

يشمل هذا الدليل الآليّات المدمجة في ريلز لإجراء الاختبارت على التطبيقات. بعد قراءة هذا الدليل، ستتعلم: الاصطلاح المتعلّق باختبارات ريلز. كيفيّة كتابة كلٍّ من اختبارات الوحدة، الاختبارات الوظيفيّة، والاختبارات التكامليّة لتطبيقات ريلز. وغيرها من الطرق والإضافات الخاصّة بالاختبارات. ما الهدف من كتابة اختبارات لتطبيقات ريلز؟ يسهّل ريلز كتابة الاختبارات بشكل كبير، إذ أنّه يبدأ بهيكلة شيفرة الاختبار في الوقت الذي تُنشِئ فيه النّماذج ووحدات التحكّم. يمكّنك إجراء اختبارات ريلز من التأكّد من أداء الشيفرة وظيفتَها المطلوبة حتّى بعد إعادة تصميم ...

التحسينات في روبي

إن ميّزة الأصناف المفتوحة في لغة روبي تسمح لك بإعادة تعريف أو إضافة وظائف إلى أصناف معرّفة مسبقًا. وهذا ما يسمى بمصطلح "ترقيع القرد" (monkey patch). المشكلة هنا أنَّ تعديلات من هذا النوع تكون مرئيّة على المستوى العام (global)، وبالتالي جميع مستخدمي الصنف المرقّع قادرون على رؤية هذه التغييرات، ممّا قد يسبّب تأثيرات جانبيّة غير محسوبة أو حتى عطب في البرامج. تأتي التحسينات هنا لتقلّل أثر ترقيع القرد على مستخدمي الصنف الآخرين، إذ تقدّم طريقة لتوسيع الصنف محليًّا. وإليك مثال ...

بنى التحكم في PHP

تتكون جميع شيفرات PHP من سلسلة من العبارات (statements)، ويمكن للعبارة أن تكون إسنادًا (assignment) أو استدعاءً لدالّة، أو حلقة تكرارية، أو عبارة شرطية أو حتى عبارة لا تقوم بأي عمل على الإطلاق (عبارة فارغة). تنتهي العبارات عادة بالفاصلة المنقوطة (;)، ويمكن تجميع العبارات بإحاطتها بالأقواس المعقوفة ({}) لتصبح مجموعة عبارات (statement-group)، والتي تعدّ بدورها عبارات أيضًا. سنفصل الحديث في هذا الفصل عن أنواع متعددة من العبارات. if بنية if هي واحدة من أهم الميزات المتوفّرة في العديد من اللغات ...

array_map()‎

(PHP 4 >= 4.0.6, PHP 5, PHP 7) تنفذ الدالة array_map()‎ دالةً أخرى يحددها المستخدم على كل عنصر موجود في المصفوفات المُمرََرَة. الوصف array array_map ( callable $callback , array $array1 [, array $... ] ) تعيد الدالة كل عناصر المصفوفة array1 بعد تنفيذ الدالة callback على كل عنصر من عناصرها. يجب أن يساوي عدد المعاملات التي تقبلها الدالة callback عدد المصفوفات المُمَرََرَة إلى الدالة array_map()‎. المعاملات callback mixed callback (mixed $parameter1 [, mixed $...]) دالة يحددها المستخدم لتنفيذها على كل ...

array_map()‎

(PHP 4 >= 4.0.6, PHP 5, PHP 7) تنفذ الدالة array_map()‎ دالةً أخرى يحددها المستخدم على كل عنصر موجود في المصفوفات المُمرََرَة. الوصف array array_map ( callable $callback , array $array1 [, array $... ] ) تعيد الدالة كل عناصر المصفوفة array1 بعد تنفيذ الدالة callback على كل عنصر من عناصرها. يجب أن يساوي عدد المعاملات التي تقبلها الدالة callback عدد المصفوفات المُمَرََرَة إلى الدالة array_map()‎. المعاملات callback mixed callback (mixed $parameter1 [, mixed $...]) دالة يحددها المستخدم لتنفيذها على كل ...

 التابع Dir.chdir في روبي

يغيِّر التابع chdir‎ مجلد العمل (working directory) الحالي للعملية الحالية إلى مجلَّدٍ محدَّدٍ. عند استدعائه بدون تمرير وسيط، فسيغيِّر مجلد العمل إلى قيمة متغير البيئة HOME أو LOGDIR.SystemCallError (وربما Errno::ENOENT) إذا كان المجلد المُستهدَف غير موجود. في حال تمرير كتلة برمجية إلى التابع، فسيُمرّر إليها اسم المجلد الحالي الجديد، وستنفّذ الكتلة على اعتباره المجلد الحالي. بعد تنفيذ الكتلة والخروج منها، سيُستعَاد مجلد العمل الأصلي آنذاك. وتكون القيمة المعادة للتابع chdir مساويةً لقيمة الكتلة. يمكن أن تتشعّب الكتل chdir، ولكن سيُطلَق ...

إنشاء قوائم باستخدام الأمر المُضمَّن select في Bash

عام استخدام أمر select البُنية اللغوية لأمر select تشبه بُنية حلقة for: select WORD [in LIST]; do RESPECTIVE-COMMANDS; done ويُستخدم أمر select من أجل إنشاء قوائم بسهولة عبر اتباع ما يلي: تُوسّع القائمة LIST مولِّدة قائمة من العناصر ويطبع التوسع في خطأ قياسي (standard error)، كما يُسبق كل عنصر من القائمة برقم. وإن لم تكن in LIST موجودة فتُطبع المعامِلات الموضعية كما لو تم تحديد @$ in. أيضًا، تُطبع قائمة LIST مرة واحدة فقط. يُطبع محث PS3 عند طباعة كل العناصر، ...

إنشاء وتخصيص مولدات وقوالب ريلز

مولدات ريلز هي أداة أساسية إذا كنت تخطط لتحسين سير عملك. مع هذا الدليل سوف تتعلم كيفية إنشاء المولدات وتخصيص المولدات الموجودة. بعد قراءة هذا الدليل، ستتعلم: كيفية معرفة أي المولدات المتوفرة في التطبيق الخاص بك. كيفية إنشاء مولد باستخدام القوالب. كيفية بحث ريلز عن المولدات قبل استدعائها. كيفية إنشاء ريلز داخليًا شيفرة من القوالب. كيفية تخصيص المولد scaffold عن طريق إنشاء مولدات جديدة. كيفية تخصيص المولد scaffold عن طريق تغيير قوالب المولدات. كيفية استخدام التراجعات (fallbacks) لتجنب استبدال مجموعة ...

التابع Process.kill في روبي

يرسل التابع kill إشارة محدَّدة إلى عملية ذات مُعرِّف معطى أو إلى جميع العمليات التي معرِّف المجموعة التي تملكه مساويًا إلى معرِّف المجموعة للعملية المستدعية. البنية العامة kill(signal, pid, ...) → integer المعاملات signal عدد صحيح يمثِّل رقم الإشارة أو سلسلة نصية تمثِّل اسم الإشارة بحسب POSIX (مع أو بدون السابقة SIG). إن كان عددًا صحيحًا موجبًا، إن كان عددًا سالبًا (يبدأ بإشارة الناقص)، فستُقتَل مجموعات العملية (process groups) بدلًا من العمليات. ليست جميع الإشارات مدعومة على كل المنصات. مفاتيح وقيم ...

إعادة التوجيه والحلقات في Bash

إعادة توجيه المُدخلات يمكن تحديد ملف به تعليمات تُستخدم للتحكم في حلقة تكرارية بدلًا من التحكم فيها عن طريق تفقد نتيجة أمر ما أو عن طريق تدخل المستخدم يدويًا، وعادة ما يُستخدم أمر read في هذه الحالة كأمر متحكِّم، ويستمر تنفيذ الحلقة طالما تُغذَّى الحلقة التكرارية بأسطر مدخلات من ذلك الملف، وبمجرد قراءة جميع الأسطر فإن الحلقة تتوقف وتخرج. وبما أن بنية الحلقة التكرارية تُعد بنية لأمر واحد (مثل while TEST-COMMAND; do CONSEQUENT-COMMANDS; done) فإن إعادة التوجيه يجب أن تحدث ...

الصنف StopIteration في روبي

يُطلق الاستثناء SecurityError لوقف عملية التكرار (iteration)، خصوصًا عبر التابع Enumerator.next. يُعالج هذا الاستثناء بالتابع Kernel.loop. loop do puts "Hello" raise StopIteration puts "World" end puts "Done!" سيُنتج: Hello Done! توابع النسخة العامة result يعيد القيمة المعادة من المُكرر (iterator). مصادر صفحة الصنف StopIteration في توثيق روبي الرسمي.

الصنف SecurityError في روبي

يُطلق الاستثناء SecurityError عند محاولة تنفيذ عملية قد تكون غير آمنة؛ عادةً، يطلق عندما يُرفع مستوى ‎$SAFE  فوق 0: foo = "bar" proc = Proc.new do $SAFE = 3 foo.untaint end proc.call سيطلق الاستثناء SecurityError بالشكل التالي عند تنفيذ هذه الشيفرة: SecurityError: Insecure: Insecure operation `untaint' at level 3 مصادر صفحة الصنف SecurityError في توثيق روبي الرسمي.

الكلمة break المفتاحية في أردوينو

تُستعمَل الكلمة break المفتاحية للخروج من الحلقات for، أو while، أو do...while التكرارية، إذ تتخطى الشيفرة التي بعدها وشروط الحلقة المحددِّة وتخرج منها. تُستعمَل أيضًا للخروج من التعبير switch...case البرمجي. البنية العامة break; أمثلة في الشيفرة التالية، يخرج المتحكم من الحلقة for عندما تتجاوز قيمة الحساس المقاسة عتبة معينة: for (x = 0; x < 255; x ++) { analogWrite(PWMpin, x); sens = analogRead(sensorPin); if (sens > threshold){ ...

التابع Enumerator.new في روبي

ينشئ التابع new كائنًا جديدًا من النوع Enumerator يمكن استعماله ككائن قابل للتعداد (Enumerable). البنية العامة new(size = nil) { |yielder| ... } new(obj, method = :each, *args) في الشكل الأول للتابع، يُعرَّف التكرار عبر الكتلة المعطاة التي يمكن استخدام الكائن yielder - المعطى كمعامل - فيها لإعادة القيمة الناتجة عبر استدعاء التابع yield (أو اسمه البديل +>>+). في الشكل الثاني - المهمل - للتابع، يتكرر مُعدِّدٌ مُولَّد عبر الكائن obj المعطى باستعمال التابع method المعطى مع تمرير الوسائط args إليه. لا يُشجَّع على ...

الكلمة continue المفتاحية في أردوينو

تتخطى الكلمة continue المفتاحية الشيفرة التي تليها في حلقة التكرار (مثل الحلقات for، أو while، أو do...while التكرارية) إلى عملية التحقق من التعبير الشرطي لتلك الحلقة ثم يُستأنَف عمل حلقة التكرار بشكل طبيعي. عمل هذه العبارة شبيه بإحداث قفزة في حلقة التكرار لتخطي تنفيذها عند تحقق شرط معين. البنية العامة continue; أمثلة في الشيفرة التالية، ستُكتب القيمة من 0 إلى 255 على الرجل PWMpin مع تخطي كتابة القيم التي تقع في المجال 41 إلى 119: for (x = 0; x ...

استدعاء التوابع في روبي

عندما تستدعي تابعًا، فإنّك تمرّر رسالة لكائن معيّن لأجل تنفيذ مهمّة معيّنة، ويتمّ ذلك في لغة روبي كالتّالي: my_method() لاحظ أنّ استخدام الأقواس المنحنية هنا اختياريّ: my_method المعتمد في هذا التّوثيق أن تُستخدّم الأقواس عند وجود المعامِلات لإزالة الالتباس، إلا في حالة وجود فرق بين وجود الأقواس وحذفها. هذا القسم يغطّي فقط كيفيّة استدعاء التوابع، وستُشرَح كيفيّة تعريف التّوابع في قسم آخر. المستقبِل المستقبِل (Receiver) الافتراضي في لغة روبي هو self وهو الذي يُستخدَم في حال عدم تحديد أيّ مستقبل آخر. ولأجل ...

التابع IO.read‎ في روبي

يقرأ التابع read عددًا محدَّدًا من البايتات من المجرى الذي استدعي معه عندما يُستدعى التابع read في نهاية الملف، فسيعيد إما nil أو ""، بناءً على الطول المُمرَّر إليه، مثلا، ستعيد التعبيرات read و read(nil)‎ و read(0)‎ القيمة ""، فيما سيعيد التعبير read( positive_integer )‎ القيمة nil. لاحظ أنَّ هذا التابع يتصرف بطريقة مشابهة للدالة fread()‎ في لغة C. وهذا يعني أنَّه سيحاول إجراء استدعاءات النظام read(2)‎ لقراءة البيانات بالطول المحدَّد (أو حتى يصادف محرف نهاية الملف EOF). يستمر هذا السلوك ...

التابع Object.to_enum في روبي

يُنشئ التابع enum_for نسخةً من الصنف Enumerator الذي يجري عملية عدٍّ (enumerate) وتكرار عبر استدعاء التابع المُمرَّر إليها مع كائنٍ محدَّد، وتمرير وسائط إن أعطيت. إذا مُرِّرت كتلة (block) إلى التابع، فستُستخدم لحساب حجم نسخة الصنف Enumerator دون الحاجة إلى تكرارها (ألقِ نظرة على التابع Enumerator.size). البنية العامة enum_for(method = :each, *args) → enum enum_for(method = :each, *args){|*args| block} → enum المعاملات method التابع المُمرَّر. القيمة الافتراضية لهذا المعامل هي: each:. args* الوسائط المراد تمريرها إلى التابع. args| block*| الكتلة ووسائطها ...

التابع Thread.keys‎ في روبي

يُعيد التابع keys مصفوفة من أسماء المتغيرات محلية الليف (fiber-local variables) على هيئة رموز. البنية العامة keys→ array‎ القيمة المعادة تعاد مصفوفة من أسماء المتغيرات محلية الليف. أمثلة مثال على استخدام التابع keys‎: thr = Thread.new do Thread.current[:cat] = 'meow' Thread.current["dog"] = 'woof' end thr.join #=> #<Thread:0x401b3f10 dead> thr.keys #=> [:dog, :cat]‎ انظر أيضًا التابع key?‎: يتحقق إن كانت السلسلة النصية أو الرمز المعطى موجود على هيئة متغير محلي الليف (fiber-local variable). مصادر قسم التابع keys‎ في الصنف Thread‎ ...

نظرة عامة على وحدة العرض في ريلز

بعد قراءة هذا الدليل، ستعرف: ما هو Action View وكيفية استخدامه مع ريلز. أفضل طريقة لاستخدام القوالب والجزئيات (partials) والتخطيطات. ما الذي يقدمه المساعدون عن طريق Action View. كيفية استخدام العروض المحلية. ما هو Action View؟ في ريلز، تُعَالَج طلبات الويب من خلال Action Controller و Action View. عادةً ما يقع على عاتق وحدة التحكم التواصل مع قاعدة البيانات وتنفيذ الإجراءات CRUD عند الضرورة؛ بعد ذلك، يكون Action View مسؤولًا عن تفسير (compiling) الاستجابة. تُكتَب قوالب Action View باستخدام روبي ...

أدوات Active Support في ريلز

Active Support هو جزء من نواة ريلز التي توفر ملحقات للغة روبي والأدوات المساعدة وغيرها من الأشياء. أحد الأشياء التي يتضمنها هو واجهة برمجية لأدوات قياس (instrumentation API) يمكن استخدامها داخل تطبيق لقياس إجراءات معينة تحدث داخل شيفرة روبي، مثل تلك الموجودة داخل تطبيق ريلز أو إطار العمل نفسه، إذ لا يقتصر ذلك على ريلز فقط. يمكن استخدامها بشكل مستقل في شيفرات روبي البرمجية الأخرى إذا كان ذلك مطلوبًا. في هذا الدليل، ستتعلم كيفية استخدام الواجهة البرمجية لأدوات القياس (instrumentation API) ...

التابع ‎block_given?‎‎ الخاص بالصنف Kernel في روبي

يتحقق التابع block_given?‎ إذا كان yield سينفذ كتلةً برمجيةً في السياق الحالي. الشكل iterator?‎‎ صار شبه مهمل. البنية العامة block_given?→ true or false‎ القيمة المعادة تُعاد القيمة true إذا كان yield سينفذ كتلة برمجية في السياق الحالي. أمثلة مثال على استخدام التابع block_given?‎: def try if block_given? yield else "no block" end end try #=> "no ...

التابع Object.enum_for في روبي

يُنشئ التابع enum_for نسخةً من الصنف Enumerator الذي يجري عملية عدٍّ (enumerate) وتكرار عبر استدعاء التابع المُمرَّر إليها مع كائنٍ محدَّد، وتمرير وسائط إن أعطيت. إذا مُرِّرت كتلة (block) إلى التابع، فستُستخدم لحساب حجم نسخة الصنف Enumerator دون الحاجة إلى تكرارها (ألقِ نظرة على التابع Enumerator.size). البنية العامة enum_for(method = :each, *args) → enum enum_for(method = :each, *args){|*args| block} → enum المعاملات method التابع الذي ستُطبَّق عليه العملية. القيمة الافتراضية لهذا المعامل هي: each:. args* الوسائط المراد تمريرها إلى التابع. args| ...

التابع ‎iterator?‎‎ الخاص بالصنف Kernel في روبي

يتحقق التابع iterator?‎ إذا كان yield سينفذ كتلة برمجية في السياق الراهن. لقد أصبح الشكل ‎iterator?‎ مهملًا إلى حد ما. البنية العامة iterator?→ true or false‎ القيمة المعادة تعاد القيمة true إذا كان yield سينفذ كتلة برمجية في السياق الراهن. وإلا فستعاد false. أمثلة مثال على استخدام التابع iterator?‎: def try if block_given? yield else "no block" end end try ...

مساعدو الاستمارة في وحدة العرض في ريلز

تعتبر الاستمارات (forms) في تطبيقات الويب واجهة أساسية للتفاعل مع المستخدم وجلب بيانات منه. ومع ذلك، يمكن أن تصبح عملية إنشاء استمارةٍ وصيانتها عمليةً مملةً بسبب الحاجة إلى التحكم بالتسميات وبخاصياتها الكثيرة. تخلَّص ريلز من هذا التعقيد بتوفير مساعدين للعرض لإنشاء الاستمارات بسهولة. ومع ذلك، بما أن للمساعدين حالات استخدام مختلفة، يحتاج المطورون إلى معرفة الاختلافات بين توابع كل مساعد قبل استخدامها. بعد قراءة هذا الدليل، ستتعلم: كيفية إنشاء استمارات للبحث ونوع مماثل من الاستمارات العامة التي لا تمثل أي ...

عرض (50 السابقة | 50 التالية) (20 | 50 | 100 | 250 | 500).