Могу ли я использовать массив как констант конфигурации в часовне - PullRequest
0 голосов
/ 22 мая 2018

Я бы хотел, чтобы начальная позиция моих агентов была настраиваемой.В коде часовни у меня есть

var DOG_STARTING_POSITION: [1..0] int;

Затем в файле .cfg у меня есть

DOG_STARTING_POSITION=[25,25]

Но это приводит к ошибке

error: type mismatch in assignment from string to int(64)

1 Ответ

0 голосов
/ 24 мая 2018

Могу ли я использовать массив как констант конфигурации в часовне?

Нет.

Это было объяснено @bencray уже в 2017 году/ 12 что

это еще не поддерживается в часовне с часовни 1.16

Между тем, существует общее решение для прокси:

Oneможет всегда располагать входные данные, которые будут иметь место из файла конфигурации (обычный шаг в таких конфигурируемых, конвейерных организованных вычислительных потоках), учитывая, что необходимо прочитать весь конфигурируемый массив элементов.

Если попытка выше была на самом деле желанием использовать форму настраиваемых средств косвенной адресации , давайте

// DOG_STARTING_POSITION     = [25, 25]
   DOG_STARTING_POSITION_ROW =  25
   DOG_STARTING_POSITION_COL =  25

// and the already compiled code may later freely reference the value by:

   DOG_STARTING_POSITION     = anArrayCONTENT[ DOG_STARTING_POSITION_ROW,
                                               DOG_STARTING_POSITION_COL
                                               ];
/* using the indirect-addressing,
         delivered as
                      config const ( i.e. as trivial int coordinates
                                          from outside
                                          the code-execution context
                                          )
                   as late as
                   at run-time
                   */
...