التعامل مع العناصر الفارغة

العناصر الفارغة هي العناصر ضمن القائمة التي تحتوي على أية قيمة. لمعرفة كيفية التعامل معها ، وتأخذ في القائمة التالية :

كيف العديد من العناصر في قائمتي؟ كنت اعتقد ستة ، ولكن كولد فيوجن وظائف قائمة انظر أربعة فقط لأن كولد فيوجن تهم عناصر قائمة فارغة ، مثل واحد بين الكمثرى والبرتقال والعنصر فارغة في نهاية القائمة ، كما يكاد يكون معدوما. اذا كنت بحاجة الى عنصر فارغ ، يجب وضع المسافات في القائمة ، كما في المثال التالي :

ممارسة جيدة لتجنب العناصر الفارغة إذا كان ذلك ممكنا. كولد فيوجن في قائمة مهام تجهيز العمل بشكل مختلف عن قائمة من وظائف تجهيز في معظم اللغات الأخرى ، ويمكن أن تشكل مسألة قابلية. فجأة ما إذا كنت بحاجة إلى استخدام فاصلة منقوطة ك محدد قائمة بدلا من فاصلة؟ كنت تستخدم ListChangeDelims () على النحو التالي :

قائمتي الآن يحتوي على "التفاح ، الكمثرى ، البرتقال ، الموز". والشيء المثير للاهتمام حول ListChangeDelims () هو أنه تلقائيا بإزالة العناصر الفارغة. خذ على سبيل المثال ، القائمة التالية :

  

ListChangeDelims () سيعود "التفاح ، الكمثرى ، البرتقال ، الموز". باستخدام ListChangeDelims () ، ولذلك ، هو أيضا وسيلة جيدة لإزالة العناصر الفارغة حتى لو كنت لا تغيير المحددات ، على النحو التالي :

القوائم التي كنا تستخدم في الأجزاء السابقة ، كانت جميعها في ترتيب عشوائي. اذا كنت بحاجة الى العناصر الموجودة في قائمة ليكون في ترتيب معين ، يمكنك استخدام ListSort () ، على النحو التالي :

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

الرقمية : فرز قائمة عدديا. إذا كان أي عنصر قائمة لا يمكن تحويلها إلى رقم ، كولد فيوجن رميات خطأ.

النص : فرز القائمة حسب الترتيب الأبجدي لكنها قضية حساسة. محاولة استدعاء ListSort () على القائمة التالية :

الكمثرى والتفاح والموز والخوخ

هذه الدعوة سوف يعود على ما يلي :

الموز والكمثرى والتفاح والخوخ.

وهناك حالة فرز حساسة دائما بإرجاع بأحرف كبيرة قبل بأحرف صغيرة ، على هذا النحو ، أي أن الكلمات في جميع الحروف قبل أي نوع الكلمات وتوج الأولية. مجرد حقيقة أن الرسالة هي كبيرة بما يكفي لضمان بأن هذه الرسالة لن تأتي قبل أي حرف صغيرة.

Textnocase : فرز القائمة حسب الترتيب الأبجدي ، وتجاهل القضية. يدعو ListSort () على القائمة السابقة ستعود على ما يلي :

والتفاح ، والموز ، والخوخ ، والكمثرى

الوسيطة الثالثة إلى ListSort () يمكن أن يكون تصاعديا أو تنازليا اعتمادا على ما إذا كنت تريد تصاعدي أو تنازلي الفرز. لنفترض أن لديك من القائمة التالية :

الكمثرى والبرتقال والليمون والكباد.

ولكن لنفترض ، أيضا ، أن كنت تريد استخدامها في الاستعلام ، مثل ما يلي :

اختر * من أين FruitName في الفاكهة ( 'الكمثرى' ، 'البرتقالي' ، 'الليمون' ، 'الكباد')

أنت لا تستطيع فقط استخدام على النحو التالي :

اختر * من أين FruitName في الفاكهة (قائمتي # #)

ذلك لأن قائمتي ليس لديها علامات الاقتباس المفردة حول بنوده ، وقاعدة البيانات من شأنه أن يلقي على خطأ عندما حاولت تنفيذ الاستعلام. قبل استخدام قائمتي في استعلام ، يجب تأهيل عناصر قائمة من قبل المحيطة بهم مع ونقلت واحد. كولد فيوجن توفر الوظيفة ListQualify المسمى () على ان تفعل ذلك ، كما يظهر في المثال التالي :

اختر * من أين FruitName في الفاكهة (# ListQualify (قائمتي ، "'")#)

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

ArrayNew () بإنشاء جديدة ، ذات بعد واحد ومجموعة وجوه يسند الى myArray متغير. صفيف يمكن أن يكون ما يصل إلى ثلاثة أبعاد. وقال احد صفيف ثنائي الأبعاد يخلق كومة من العناصر. وصفيف ثنائي الأبعاد هو بمثابة شبكة من العناصر. كما يمكنك ربما تخمين ، لمدة ثلاثة صفيف الأبعاد يشبه المكعب من العناصر. صفائف متعدد نادرا ما تكون مفيدة إلا إذا كنت تريد ان تفعل الرياضيات مصفوفة (التي لا ينبغي لأحد أن يفعل في كولد فيوجن على أي حال). كنت أشير إلى عنصر صفيف من خلال تدوين الموضعية ، على النحو التالي :

 # myArray [2] # 

هذا مقتطف نواتج العنصر الثاني في المصفوفة. مؤشر صفيف (الرقم بين قوسين معقوفين) يمكن أيضا أن يكون المتغير تحتوي على قيمة رقمية. صفائف لدى اشارته الى ان يبدأ العد من 1 قد تبدو زائدة عن الحاجة ، ولكن في معظم لغات الكمبيوتر مثل جافا سكريبت صفائف تبدأ في العنصر 0. الحفاظ على هذا الواقع في الاعتبار إذا كنت من أي وقت مضى تعبئة مجموعة جافا سكريبت باستخدام عناصر الصفيف كولد فيوجن. لإضافة عنصر إلى نهاية صفيف ، استخدام ArrayAppend () ، على النحو التالي :


   

لاحظ الفرق بين ListAppend () وArrayAppend () في الأمثلة التالية :


   

ListAppend () لا يعدل القائمة الأصلية ، بدلا من ذلك ، فإنها ترجع إلى القائمة الأصلية مع إلحاق العنصر الجديد. ArrayAppend () ، ومع ذلك ، يعدل الصفيف الأصلي. الشيء الوحيد الذي ArrayAppend () إرجاع أي وقت مضى هو الصحيح ، لذا لا حاجة لتخزين قيمة العودة. كولد فيوجن أيضا لديه ArrayPrepend () وظيفة ، على النحو التالي :

يمكنك ايضا اضافة الى وجود عنصر جديد بين مجموعة العناصر الموجودة بالفعل. بعد استدعاء ArrayNew () وArrayAppend () في وقت سابق من هذه المادة ، على سبيل المثال ، myArray يبدو كما يلي :

1 : 2 الخوخ : التفاح

يمكنك ادخال عنصر جديد بين البلدين باستخدام ArrayInsertAt () على النحو التالي :

myArray الآن عنصرا جديدا بين الخوخ والتفاح ، وذلك على التفصيل الآتي :

1 : 2 الخوخ : الليمون 3 : التفاح

يمكنك أيضا إنشاء مجموعة من العناصر مباشرة تعيين قيمة لهذا الموقف ، على النحو التالي :

الآن وقد myArray عنصر رابع ، كما ترون في النتيجة التالية :

1 : 2 الخوخ : الليمون 3 : التفاح 4 : عنبية.

يمكنك أيضا تخطي العناصر ، على النحو التالي :

هذه الشفرة يؤدي إلى عنصر آخر في الصفيف myArray ، كما هو مبين في ما يلي :

1 : 2 الخوخ : الليمون 3 : التفاح 4 : عنبية 5 :  6 : الرمان

لاحظ أن أي عنصر يكمن في موقف 5 في myArray. هذه النتيجة لا تعني أن العنصر فارغ ، فهي ببساطة لا وجود له. الفرق بين فارغ وغير موجود في بعض الأحيان من الصعب فهم ، ولكنها تتلخص في هذا : محاولة استخدام myArray [5] عندما يكون العنصر الخامس غير موجود سيرمي خطأ ، في حين إذا كان العنصر الخامس فارغا ، myArray [5 ] سيعود سلسلة فارغة. يمكنك حذف عنصر من صفيف باستخدام ArrayDeleteAt () ، على النحو التالي :

هذا الخط حذف البند السادس من المجموعة التي نصفها في الجزء السابق ، لاحظ أن طول الجديد للمجموعة حتى الآن خمس ، على الرغم من أن العنصر الخامس هو غير معروف. إذا كنت بحاجة إلى بسرعة حذف كافة العناصر من صفيف ، استخدام ArrayClear () ، على النحو التالي :

بعد استدعاء ArrayClear () ، لا يوجد لديه مجموعة من العناصر المتبقية. التالي هو وسيلة سهلة لمعرفة ما إذا كان صفيف لديها أي عناصر هي :

هذا الصفيف فارغة.

هذه المجموعة لديها على الأقل عنصر واحد.

العثور على عدد محدد من العناصر في صفيف ، استخدام ArrayLen () ، على النحو التالي :

كلا ArrayLen () وArrayIsEmpty () عدد العناصر غير معروف ، لذا كن حذرا لأنك عادة لا تأخذ في الاعتبار عناصر غير معروف في بقية التعليمات البرمجية. العثور على عنصر في القائمة هو مسألة بسيطة من استدعاء ListFind () أو ListFindNoCase (). لديك ، ومع ذلك ، لا مجموعة ومقرها يعادل ListFind (). بدلا من ذلك ، يجب عليك استخدام حلقة ، على النحو التالي :


   
   
   
   

بعد الانتهاء من هذه الحلقة ، الأول ويحتوي على فهرس الصفيف الذي يحتوي على "التفاح" في هذه الحالة ، 3. دالة تجميع تأخذ صفيف تحتوي على أرقام كوسيطة وإرجاع قيمة واحدة تمثل بعض خصائص تلك الأرقام. كولد فيوجن صفائف لها أربع وظائف الكلي ، وانهم جميعا هو موضح في رمز. علما بأن وظائف الكلي وترد في جريئة ، وبأن كل واحد منهم يأخذ حجة واحدة : وتحتوي على مجموعة البيانات التي سيتم تجميعها.


   
   
   
   
 
   
   مجموع عناصر الصفيف : # ArraySum (myNumericArray) #
   أصغر عنصر صفيف : # ArrayMin (myNumericArray) #
   أكبر عنصر صفيف : # ArrayMax (myNumericArray) #
   متوسط عناصر الصفيف : # ArrayAvg (myNumericArray) #
   
 

إذا كان أي من العناصر في صفيف لا يمكن تحويلها إلى رقم ، كولد فيوجن رميات خطأ إذا حاولت استخدام الدالة التجميعية. آخر صفائف ميزة قد لا تسرد هو القدرة على تبادل العناصر بسهولة. لنفترض أن myArray يبدو كما يلي :

1 : 2 الخوخ : الليمون 3 : التفاح 4 : عنبية.

لمبادلة العناصر الأولى والثالثة ، يمكنك استخدام ArraySwap () ، على النحو التالي :

myArray عندئذ تبدو على النحو التالي :

1 : 2 التفاح : ليمون 3 : 4 الخوخ : عنبية.

كما هو الحال مع القوائم ، يمكنك بسهولة فرز صفيف باستخدام ArraySort () ، على النحو التالي :

بعد استدعاء ArraySort () ، من شأنه أن myArray تحتوي على ما يلي :

1 : 2 التفاح : عنبية 3 : الليمون 4 : الخوخ.

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

الرقمية : فرز الصفيف عدديا. إذا كان أي عنصر الصفيف لا يمكن تحويلها إلى رقم ، كولد فيوجن رميات خطأ.

النص : فرز الصفيف أبجديا بل هو قضية حساسة. افترض أنك دعوة ArraySort () على الصفيف التالية :

1 : 2 الكمثرى : عنبية 3 : أبل 4 : الخوخ.

هذه المكالمة سيعود النتيجة التالية :

1 : أبل 2 : الكمثرى 3 : عنبية 4 : الخوخ.

Textnocase : فرز الصفيف أبجديا ، وتجاهل القضية. يدعو ArraySort () على مجموعة السابق سيعود إلى النتيجة التالية :

1 : أبل 2 : عنبية 3 : 4 الخوخ : الكمثرى

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

لأقصى قدر من الكفاءة في التعليمات البرمجية ، استدعاء ArrayResize () مباشرة بعد ArrayNew (). يسرد عرض بعض الميزات التي لا المصفوفات ، مثل القدرة على العثور بسهولة على عنصر ، ولكن يمكنك أيضا القيام ببعض الامور بسهولة مع المصفوفات التي يصعب مع القوائم ، مثل ايجاد المتوسط. لهذا السبب ، كثيرا ما كنت تجد نفسك باستخدام قائمة عند الحاجة وظائف صفيف والعكس بالعكس. للالتفاف على هذه المعضلة ، ويمكنك تحويل قائمة على مجموعة أو صفيف إلى قائمة - باستخدام ListToArray () وArrayToList () وظائف ، على النحو التالي :


   

هذه المهام يمكن أن يكون في الذاكرة المكثفة لقوائم كبيرة والمصفوفات ، وذلك باستخدام هاتين الوظيفتين فقط إذا كنت حقا في حاجة إليها. إذا كان الجهاز يحتوي على مجموعة القيم المعقدة ، ArrayToList () رميات خطأ. لاحظ أيضا أنه عند تحويل القائمة إلى صفيف باستخدام ListToArray () ، كولد فيوجن يزيل العناصر الفارغة من طائفة ، ولكن العكس ليس صحيحا. ArrayToList () يحفظ أي العناصر الفارغة في المصفوفة ، وربما رمي البرمجية التي يتطلب أن تكون متزامنة.

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

مقال مقدم من ألبرت Niftiger


تنويه :موقعنا على الانترنت ليست مسؤولة عن محتوى هذه المادة. Webarticles هو حر للمعلومات.
المهم : هذه المادة "التعامل مع العناصر الفارغة" وقد ترجم من قبل البرمجيات التلقائي. نشعر بالاسف من اجل أي الأخطاء الإملائية التي قد حدث. شكرا لتفهمكم.


Online: 460 users browsing the articles directory