كيف نقطة تدوين تلقائيا بإنشاء بنية متداخلةوحتى الآن ، قمت بإنشاء الهياكل فقط باستخدام StructNew (). يمكنك أيضا إنشاء هياكل فقط باستخدام نقطة تدوين ، على النحو التالي :
هذا الخط يخلق هيكل اسمه aNewStruct مع بأساس اسمه SomeKey يحتوي على العنصر المسمى SomeValue بقيمة 1. لاحظ أن أسماء جميع الهياكل التي أنشئت حديثا وكلها مفاتيح كبيرة ، بغض النظر عن رؤوس الأموال التي تستخدمها في رمز. ومريحة كما قد يبدو هذا الأسلوب ، وليس لها أي عيب. النظر في المقتطف التالي : بعد تشغيل مقتطف السابقة ، واثنين من المفاتيح الجديدة ، المسماة myKey وyourKey ، يتم إنشاؤها. افترض أنك الآن في محاولة لاستدعاء المقتطف التالي لإنشاء بنية متداخلة اسمه myKey : إذا السطر السابق قد عملت ، فإنه سيتعين على الكتابة السابقة القيمة البسيطة myKey مع بأساس اسمه myKey. لحسن الحظ ، ومع ذلك ، يحاول الكتابة مفتاح بسيطة مع بأساس رميات خطأ في كولد فيوجن الإرسال المتعدد ، الذي لا يواجه وجود قيود في خلق بنية المفاتيح باستخدام هذا الأسلوب. كولد فيوجن الإرسال المتعدد يمكن إنشاء هياكل متداخلة فقط ما يصل الى ثلاثة مستويات عميقة في مكالمة واحدة ، كما في هذا المثال : في محاولة لخلق مفتاح أكثر من ثلاثة مستويات عميقة تعطيك نتائج غير متوقعة. كولد فيوجن يتجاهل جميع ولكن مفاتيح الثلاثة الماضية. تشغيل التعليمات البرمجية التالية ، على سبيل المثال ، والنواتج "بعض" القيمة :
يمكنك ، ومع ذلك ، إنشاء هياكل متداخلة بعمق كما تريد طالما أنك لا تحاول أن يذهب أكثر من ثلاثة مستويات أعمق من القائم حاليا. في بعض الأحيان بيانات مفيدة إلا إذا تم فرزها في ترتيب معين. على الرغم من أن هذا من السهل القيام به مع جداول البيانات في قاعدة بيانات ، وفرز البيانات في بنية يأخذ فهم أكثر قليلا والجهد. قل إن كان لديك تحتوي على هيكل الأسعار للرطل الواحد من الفواكه المختلفة ، على النحو التالي : يمكنك حلقة على هذه الأسعار والانتاج لهم باستخدام رمز.
والمشكلة هنا هي أن الهياكل ليس لدينا أي نوع من النظام الطبيعي. مفاتيح الهيكل يتم تخزينها في النظام الداخلي الذي فقط كولد فيوجن خادم يفهم ، واذا كنت حلقة حول الهيكل ، وهذا النظام الذي تراه. الترتيب الذي قمت بإدراج مفاتيح حتى لا يهم. StructSort () بإرجاع صفيف أسماء رئيسية مصنفة حسب قيمها (الأسماء ليست المفتاح) ، ويستخدم رمز StructSort () لوضع الفاكهة تكاليف في النظام.
أكبر فرق بين رموز هو النهج الذي يأخذ كل لحلقات حول الهيكل. في أول واحد ، ونحن فقط استخدام معيار جمع حلقة ، بالاعتماد على كل ما كولد فيوجن أجل تخزين فيها هيكل في ثانية واحدة ، فإننا ندعو StructSort () أولا ، والتي ترجع إلى مجموعة من الأسماء الرئيسية التي تبدو على النحو التالي : 1 : تفاح 2 : الليمون 3 : الخوخ 4 : 5 البرتقال : الكرز لا تزال هذه العناصر قد لا يبدو أن يكون في أي ترتيب معين ، ولكن إلقاء نظرة على الأسعار التالية المرتبطة بكل عنصر من عناصر (على الرغم من القيم بين قوسين ليست في الواقع جزءا من مجموعة) : 1 : تفاح (1.50) (2) : ليمون (1.65) 3 : الخوخ (1.75) (4) : البرتقال (1.99) 5 : الكرز (2.25) على الرغم من أن أسماء مفاتيح تظهر في المصفوفة ، فإن القيم تظل العودة في الهيكل ، وبعد استدعاء StructSort () ، رمز حلقات عبر keyArray ، والذي يحتوي على أسماء فرز الرئيسية. استخدمت خلال هذه الحلقة ، keyArray [ط] يحتوي على اسم المفتاح الحالي ، والذي يمكن بدوره أن يكون لتوريد اسم المفتاح لهيكل FruitCosts. إذا كنت تتبع كولد فيوجن تجهيز المحرك على طول خطوة بخطوة ، وقرار من هذا المرجع هو كما يلي : الخطوة 1 : # FruitCosts [keyArray [ط]] # الخطوة 2 : # FruitCosts [keyArray [1]] # الخطوة 3 : # FruitCosts [ "التفاح"] # النتيجة : 1.50 ولكن ماذا لو كنت تريد فرز بواسطة مفتاح في بنية متداخلة؟ قمنا تعديل هيكل FruitCosts في وقت سابق من هذه المادة عن طريق استخدام التعليمات البرمجية التالية : كل عنصر في بنية FruitCosts هو بأساس تحتوي على مفتاحين : "باوند" (السعر للرطل الواحد) ، و "كيس" (سعر كيس). حتى الآن أن لديك هذه المجموعة من البنيات المتداخلة ، وكيف يمكن الفرز حسب السعر للرطل الواحد؟ والسمة الرابعة للStructSort () يصف نقطة المسار إلى القيمة النوع ، على النحو المبين في القانون.
والشيء الجيد في هذا الأسلوب هو أنه يمكنك بسهولة جدا التبديل إلى الفرز حسب سعر كيس الواحد ، كما هو موضح في التعليمات البرمجية.
يمكنك فرز بواسطة مفتاح أي عدد من المستويات العميقة عن طريق إضافة عناصر إلى نقطة المسار : أن تدرك أنه إذا الفرعي المحدد غير موجود بالنسبة لكل عنصر أعلى مستوى في الهيكل الرئيسي ، كولد فيوجن رميات خطأ. مقال مقدم من اماندا بيكر تنويه :موقعنا على الانترنت ليست مسؤولة عن محتوى هذه المادة. Webarticles هو حر للمعلومات. المهم : هذه المادة "كيف نقطة تدوين تلقائيا بإنشاء بنية متداخلة" وقد ترجم من قبل البرمجيات التلقائي. نشعر بالاسف من اجل أي الأخطاء الإملائية التي قد حدث. شكرا لتفهمكم.
|
|||||
| Online: 278 users browsing the articles directory |
|
|