#debugging #julia #watch
#отладка #джулия #Смотреть
Вопрос:
Предположим, у меня длинный массив.
> using MakieGallery
> size(database)
(210,)
Если я сделаю
> [d.title for d=database]
он напечатает его усеченным, и если я show
это сделаю, он напечатает его в беспорядке:
> show([d.title for d=database])
Я не знаю как, но, вероятно, я мог бы печатать значения в столбце, и это прокручивало бы мою консоль далеко вверх.
Все это плохо. Возможно ли выполнить какое-то простое «наблюдение» за переменной? Т.е. Открыть какой-нибудь небольшой виджет в отдельном окне с элементом управления списком, отображающим массив, который я мог бы прокручивать по мере необходимости?
Ответ №1:
Внутренне Julia использует Base.show
для отображения значений в REPL, вы можете просто расширить эту функцию любым удобным вам способом (этот пример — просто очень простая реализация для печати каждого элемента массива в новой строке, и вам, вероятно, не следует ее использовать):
Base.show(io::IO, ::MIME"text/plain", x::Array) = x .|> println
Затем вы можете продолжить и добавить свою функцию .julia/config/startup.jl
, чтобы загружать ее каждый раз при запуске REPL. Просто убедитесь, что у вас действительно надежная реализация для обработки различных крайних случаев, когда она может работать неправильно.
Ответ №2:
Плутон.в jl есть очень хороший просмотрщик табличных данных (включая массивы). Он усекает вывод по умолчанию, но предлагает кнопку, чтобы показать больше.
Кроме того, представление автоматически обновляется при изменении данных в другой ячейке.