Обобщённая проверка массивов на равенство
Материал из Вики ИТ мехмата ЮФУ
Версия от 23:12, 12 февраля 2016; Ulysses (обсуждение | вклад)
/// <summary>
/// Проверяет массивы a, b на равенство и возвращает
/// истину, если они равны
/// </summary>
/// <param name="a">Первый массив</param>
/// <param name="b">Второй массив</param>
/// <returns>Истину, если содержимое массивов равно</returns>
function ArrsAreEqual<T>(a, b: array of T): boolean;
begin
Assert(a <> nil, 'ArrsAreEqual: a <> nil');
Assert(b <> nil, 'ArrsAreEqual: b <> nil');
// сравниваем длины
Result := a.Length = b.Length;
if Result then
begin
// здесь result is true
var i := 0;
while (i < a.Length) and (a[i] = b[i]) do
i += 1;
if i < a.Length then
Result := false;
end;
end;