Что нового

Массивы Проверка равенства массивов

RavdonikaS

Новичок
Сообщения
68
Репутация
4
Почему в данном случае выдает неравенство двух массивов?
Код:
Global $test1[6]=[0,1,2,3,4,5], $test2[6]=[0,1,2,3,4,5]
If $test1=$test2 Then MsgBox(0, '','Массивы равны')
If $test1<>$test2 Then MsgBox(0, '','Массивы не равны')

Как вообще без громаждения конструкций поэлементного сравнения и сторонних библиотек можно в одну строчку проверить равенство массивов?
 

joiner

Модератор
Локальный модератор
Сообщения
3,409
Репутация
597
никак. либо переводим массивы в строку и сравниваем строки
либо в цикле сравниваем содержимое.
 

Cytrus

Новичок
Сообщения
110
Репутация
3
Никак. Потому что:
Вы не можете знать, сколько элементов в массиве.
Вы даже не можете знать, какова размерность массива.
И конечно же, вы не можете знать, ни тип, ни точного значения каждой ячейки массива.
Для таких вещей нужно знать языки программирования низкого уровня.
Что такое стёк, что такое куча.
И каким образом, можно получить доступ к ним. УПРАВЛЯТЬ ими.
 
Последнее редактирование:

Sergio

Новичок
Сообщения
34
Репутация
2
Код:
#include <Array.au3>
Global $test1[6]=[0,1,2,3,4,5], $test2[6]=[0,1,2,3,4,5]
$text1 =  _ArrayToString($test1, ',')
$text2 =  _ArrayToString($test2, ',')
ConsoleWrite($text1 == $text2 ? 'Equals' : 'Not equals')
 
Последнее редактирование:

InnI

AutoIT Гуру
Сообщения
4,564
Репутация
1,262
Вы не можете знать, сколько элементов в массиве.
Вы даже не можете знать, какова размерность массива.
И конечно же, вы не можете знать, ни тип, ни точного значения каждой ячейки массива.
Неужели вы никогда в AutoIt не работали с массивами? Всё это можно узнать нативными средствами
Код:
Ubound()
VarGetType()
 
Верх