Вы не можете сделать это "во время компиляции".Фактически, составной литерал, который используется package A
, также будет создан и использован во время выполнения.Составных литеральных констант не существует.
В дальнейшем, независимо от того, какой код вы пишете в пакете B
, если он импортирует пакет A
, код пакета B
будет работать только после того, как пакет A
будетинициализирован, включая опубликованную вами карту.
Если вы хотите, чтобы A.MyMap
имел другое значение, прежде чем оно будет видно любому другому пакету, вам следует изменить источник пакета A
.Это может быть сгенерированный дополнительный файл, который может использовать функцию пакета init()
, назначая новое значение для MyMap
или добавляя к нему новые значения.
Если вы можете, вы также можете изменить пакет A
, чтобы инициализация MyMap
была перемещена в другой исходный файл, который можно сгенерировать.