Почему функция get_attribute симмера требует в качестве аргумента среду? - PullRequest
0 голосов
/ 01 апреля 2020

Функция get_attribute в simmer принимает среду моделирования в качестве аргумента (.env). Тем не менее, его нужно вызывать во время выполнения поступления, так что, вероятно, он уже знает, в какую среду моделирования он вызывается. Зачем нужен аргумент?

Сравните с set_attribute, для которого не требуется среда в качестве аргумента.

Мои предположения о различиях:

  1. set_attribute создает действие в траектории среды, тогда как get_attribute - это функция, которая может быть вызвана внутри действия создание функции niladi c. Это позволяет получить прежние знания об окружающей среде, что не позволяет get_attribute той же информации.
  2. Существуют случаи использования, когда вы можете извлечь атрибуты из второй среды моделирования.

1 Ответ

1 голос
/ 02 апреля 2020

Траектории и среды моделирования являются независимыми объектами C ++ под капотом. set_attribute добавляет действие в цепочку C ++ траектории, и поступление, которое пересекает эту активность в данный момент моделирования, может вызвать его родительский симулятор для изменения атрибута на уровне C ++. get_attribute и другие методы получения, однако, выполняются на уровне R, и поэтому им требуется ссылка на предполагаемую среду моделирования, в противном случае у них нет возможности узнать, что представляет собой окружающая среда выполнения C ++.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...