Параметры-значения
Параметры-значения позволяют указывать значения для переменных внутри настраиваемого модуля:
generic
type Element is private; Size: Positive := 200; package Stacks is procedure Push... procedure Pop... function Empty return Boolean; end Stacks; package body Stacks is Size : Integer; theStack : array(1..Size) of Element; . . . |
Тогда, создать экземпляр настраиваемого модуля можно одним из следующих способов:
package Fred is new Stacks(Element => Integer, Size => 50);
package Fred is new Stacks(Integer, 1000); package Fred is new Stacks(Integer); |
Следует обратить внимание на то, что при конкретизации настраиваемого модуля фактический параметр-значение должен быть обязательно указан только в случаях когда для формального параметра-значения не представлено значение по-умолчанию.
В качестве параметров-значений допускается использование строк.
generic
type Element is private; File_Name : String; package .... |
Примечательно, что параметр File_Name, имеющий строковый тип String, - не ограничен (not constrained).
Это идентично строковым параметрам для подпрограмм.