Интересную особенность обнаружил. В коде ниже, в первом случае, при проверке через If путь структуры создаётся автоматически, во втором случае, при присвоении, такой путь не создаётся. В обоих случаях обращение идёт к Map1("Map1(2)")\MapIn("MapIn"), но поведение разное. Знать бы с чем это связано?
Structure pMapIn *Pointer EndStructure Structure pMap Map MapIn.pMapIn() EndStructure Define NewMap Map1.pMap() Define NewMap Map2.pMap() ; Вариант 1 - "путь" хэш-карт создаётся автоматически при проверке If Not Map1("Map1")\MapIn("MapIn")\Pointer Map1()\MapIn()\Pointer = 1 ; нет ошибки, "путь" был создан EndIf Debug Map1()\MapIn()\Pointer ; Вариант 2 - здесь "путь" хэш-карт не создаётся Define *Pointer = Map2("Map2")\MapIn("MapIn")\Pointer If Not *Pointer Map2()\MapIn()\Pointer = 2 ; ошибка EndIf Debug Map2()\MapIn()\Pointer
Отредактировано Webarion (11.07.2022 17:24:00)