Тема: AHK: Оптимизировать/исправить функции
Хочу понять, можно ли как-то улучшить функции max и min класса Math?
class Math
{
max(numbers*)
{
numbers := arrayFlat(numbers)
max := numbers[1]
for k, v in numbers
{
if (max < v)
{
max := v
}
}
return max
}
min(numbers*)
{
numbers := arrayFlat(numbers)
min := numbers[1]
for k, v in numbers
{
if (min > v)
{
min := v
}
}
return min
}
}
arrayFlat(arr)
{
Loop % len := arr.Count()
{
i := len - A_Index + 1
if IsObject(item := arr[i])
{
arr.RemoveAt(i)
arr.InsertAt(i, arrayFlat(item)*)
}
}
Return arr
}
Использовать min/max стандартные не имею возможности ибо компилятор использует 1.1.25.01 версию (если есть установщик этой версии, было бы не плохо).
Win10: LTSC (21H2); AHK: ANSI (v1.1.36.02)