Правильное использование toString и связь с отладкой - PullRequest
0 голосов
/ 10 мая 2019

Я пишу собственную линейную структуру данных, которая, как мне сказали, аналогична работе файловых систем журналирования.Он достигает времени работы для вставки / удаления, а также доступа к данным на основе индекса, которые находятся между значениями для массивов и списков.Он начинается в основном как массив, но всякий раз, когда вставка / удаление происходит в месте, которое может вызвать смещение элементов массива, он вместо этого добавляет функцию, перенаправляющую входящие индексы на соответствующий индекс либо в том же массиве, либо вмассив, хранящий элементы, вставленные в середину.

Для того, чтобы сохранить время работы и уменьшить потерю памяти, всю структуру данных необходимо время от времени реструктурировать, чтобы вернуть ее обратно в исходную форму снет пробелов или операций.Эта операция, как и любая другая операция, которая проходит через все элементы, имеет тенденцию быть немного дороже, чем другие.Однако я обнаружил, что могу сократить общее количество раз, которое мне нужно для явного вызова этой операции, так как процесс происходит автоматически в любом методе, который повторяет все элементы.

Это подводит меня к моим вопросам,Если правильная интерпретация метода toString в этом случае состоит в том, чтобы перечислить элементы, как если бы это был фактический массив, то я могу также добавить процесс реструктуризации в метод toString.Мои вопросы следующие:

  1. Является ли приведенная выше интерпретация правильной интерпретацией toString в этом случае, или toString должна раскрывать больше внутренней структуры?

  2. Если предположить, что интерпретация верна, то является ли этот процесс одновременной реструктуризации допустимым включением в метод toString, или метод должен быть когда-либо только пассивным?

  3. Наконец, предполагая, чтоэто допустимое включение, бывают случаи, такие как отладка, когда желательно, чтобы не происходила реструктуризация, потому что во время отладки вы хотите иметь возможность просматривать значения без изменения структуры.Я могу написать альтернативный метод, который генерирует тот же вывод без реструктуризации, но я понятия не имею, как указать отладчику использовать его вместо этого.Есть ли способ сделать это, и если да, то как?

...