Все, что вам нужно знать о перенаправлении STDIO в Julia.

ИО в Джулии

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

В Julia стандартный ввод-вывод представлен в трех разных форматах: stdin stdout и stderr . Это стандартный ввод, стандартный вывод и стандартная ошибка соответственно. Что касается Джулии, следует отметить, что вся информация регистрируется в стандартной ошибке — другими словами, если бы мы использовали макрос @info, мы бы получили это через стандартную ошибку. Сюда же отправляются такие вещи, как сообщения Pkg. Мы также можем выбрать запись непосредственно на ввод или вывод, используя любой метод, привязанный к IO . Обычная отправка, которую мы найдем для этого, будет IOStream , по крайней мере, для контекста этой статьи. Чтобы прояснить это, IOStream является подтипом IO , stdout например, это любой тип, через который проходит вывод. Это не обязательно должен быть IOStream , но мы должны предоставить определенный тип IO для его перенаправления.

перенаправление ввода-вывода

Название метода перенаправления стандартного ввода и вывода на самом деле говорит само за себя. Существует несколько различных форм метода, называемых redirect_stdio. Мы также можем использовать redirect_stdout и redirect_stdin/redirect_stderr соответственно. При использовании первого нам нужно будет предоставить аргументы ключевого слова, чтобы определить, какой поток должен идти к какому стандартному вводу или выводу. Это stdout , stdin и stderr , как и следовало ожидать. В случае последнего они становятся позиционными аргументами во второй позиции. Первый позиционный аргумент во всех этих методах также может быть Function . Вот посмотрите на…