Size: a a a

2021 June 04

Ra

Ruslan aka DUDE in AutoIT RU
local $obj[]
 local $arr[] = [4,1,2,3,4]
 $obj.arr = $arr
 MsgBox(0, "", $obj.arr[2]) ; 2?
 
_ArrayDelete($obj, 2)
_ArrayInsert($obj, 2, 'KEK')
 
 MsgBox(0, "", $obj.arr[2])  ;32?
 _ArrayDisplay($obj.arr)

_ArrayDelete($obj, 2)
_ArrayInsert($obj, 2, 'ЧЕБУРEK')
источник

ox

osm x in AutoIT RU
  local $arrParent[1]
 local $arr[] = [1,2,3,4]
 $arrParent[0] = $arr

 MsgBox(0, "", ($arrParent[0])[0])  ; ok = 1

 local $tmp = $arrParent[0]
 $tmp[0] = 31
 $arrParent[0] = $tmp
 
 MsgBox(0, "", ($arrParent[0])[0])  ; ok = 31
 
 $arrParent[0][0] = 21 ; Error
 MsgBox(0, "", $arrParent[0][0])  ; Error...

Это и в стабильной релизной версии ошибку даст
источник

ox

osm x in AutoIT RU
и тут в отличии от Map даже просто доступ к $arrParent[0][0] выдает ошибку, и надо писать ($arrParent[0])[0]
источник

Ra

Ruslan aka DUDE in AutoIT RU
потомучто тут так нельзя
источник

Ra

Ruslan aka DUDE in AutoIT RU
насколько я знаю
источник

Ra

Ruslan aka DUDE in AutoIT RU
возвращайся в совой си и не ной тут
просто итожить - не вопрос, а ныть - это не сюда
источник

ox

osm x in AutoIT RU
mMap нет такой
источник

Ra

Ruslan aka DUDE in AutoIT RU
исправил
источник

ox

osm x in AutoIT RU
источник

Ra

Ruslan aka DUDE in AutoIT RU
источник

ox

osm x in AutoIT RU
кароче буду  пока так делать
  local $tmp = $obj.arr
 $tmp[0] = 31
 $obj.arr = $tmp
источник

Ra

Ruslan aka DUDE in AutoIT RU
я б на твоем месте слез с бэты
источник

ox

osm x in AutoIT RU
язык сам препятствует простому выразительному коды
источник

Ra

Ruslan aka DUDE in AutoIT RU
а если сильно надо аналог мапа - DllStructCreate и в перед
источник

ox

osm x in AutoIT RU
ну я полагаю _ArrayInsert и не должны с Map работать, они для массивов
источник

Ra

Ruslan aka DUDE in AutoIT RU
за выразительным кодом иди в ассемблер
источник

ox

osm x in AutoIT RU
а вложенные структуры там есть?
и каждый доступ через DllStructGetData
источник

ox

osm x in AutoIT RU
такое себе
источник

Ra

Ruslan aka DUDE in AutoIT RU
или
$oDict = ObjCreate("Scripting.Dictionary")
источник

Ra

Ruslan aka DUDE in AutoIT RU
$oDict = ObjCreate("Scripting.Dictionary")
$oDict.Add(0,"Fact")
$oDict.Add("C++", "Bad")
$oDict.Add("AU3", "Good")
$a = $oDict.Item(0)
$b = $oDict.Item("AU3")
MsgBox(0,$a, $b)
источник