1

Тема: AHK: Массивы. Синтаксис

Объясните, а зачем например объявлять такой к примеру массив Xcor заранее, вот этой строчкой Xcor := Object(), если всё работает и без неё. Зачем она нужна, если без неё код компактнее?

Xcor := [500, 16, 257]

Loop % Xcor.MaxIndex()
	{
	Tooltip % Xcor[A_Index] "," Ycor
	}

2

Re: AHK: Массивы. Синтаксис

Не надо.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

3

Re: AHK: Массивы. Синтаксис

teadrinker пишет:

Не надо.

А если разницы нет, зачем тогда вообще Object() нужен? Я думал может это как-то влияет на быстродействие или выделение памяти под массив?

4 (изменено: teadrinker, 2017-11-20 16:57:55)

Re: AHK: Массивы. Синтаксис

Просто вариант синтаксиса. Создать объект можно, используя этот вариант, а можно без него. Пример из справки:

Array := {KeyA: ValueA, KeyB: ValueB, ..., KeyZ: ValueZ}
Array := Object("KeyA", ValueA, "KeyB", ValueB, ..., "KeyZ", ValueZ)

Эти два способа равнозначны, но первый короче.
Ваш пример можно было бы переписать так:

Xcor := Object(1, 500, 2, 16, 3, 257)
MsgBox, % Xcor[3]
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

5

Re: AHK: Массивы. Синтаксис

ThrowSum пишет:

зачем тогда вообще Object() нужен?

Указать что переменая содержит объект.

b:=3, x:=5
; arr:=[]
; arr:={}
; arr:=Object()
arr[x]:=b
MsgBox % arr[5]