في Ada، كيف يمكنني إنشاء نوع فرعي من السجلات؟

StackOverflow https://stackoverflow.com//questions/9644778

  •  10-12-2019
  •  | 
  •  

سؤال

إذا كان لدي نوع سجل مثل هذا:

  type ABC is record
       A : Integer;
       B : Integer;
  end record;

كيف يمكنني إنشاء نوع فرعي من ABC بنوعين صحيحين تم تحديد نطاقهما؟

هل كانت مفيدة؟

المحلول

على الرغم من عدم الرد على سؤالك في حد ذاته (نظرا لأن NWS يقول، لا يمكنك القيام بذلك)، إذا كان ذلك بدلا من أعداد صحيحة، فقد تكون صفيفا، فيمكنك القيام بما يلي: giveacodicetagpre.

الحقول المسجلة A AND AND B، ثم استخدم الفهرس الفرعي على النحو المنصوص عليه في المسألين القياسي.

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

نصائح أخرى

يمكنك استخدام عام أيضا، مثل هذا: giveacodicetagpre.

إذا كنت تريد نطاقات مختلفة ل A و B، فستضطر إلى استخدام اثنين من المعلمات العامة.

الاستخدام سيكون مثل هذا: giveacodicetagpre.

في Ada 2012 لدينا الآن Dynamic_Predicate والتي يمكننا من خلالها فرض قيود على الكتابة الفرعية، كما يلي:

معين: giveacodicetagpre.

يمكنك استخدامها: giveacodicetagpre.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top