Вывод отладочной информации

Elm:
Вывод отладочной информации

Как это сделать:

Elm не имеет встроенной функции print, как некоторые языки, но вы можете использовать модуль Debug для вывода в консоль:

import Debug

update : Msg -> Model -> (Model, Cmd Msg)
update msg model =
  model
    |> Debug.log "model before update"
    |> actualUpdateFunction msg
    |> Debug.log "model after update"

Вы увидите что-то вроде этого в консоли вашего браузера:

model before update: { ... некоторые данные модели ... }
model after update: { ... некоторые обновленные данные модели ... }

Помните, функция Debug.log полезна, но не следует отправлять ваш код с ней. Elm напомнит вам удалить операторы отладки, прежде чем вы сможете сделать производственную сборку.

Подробнее

Debug.log является частью модуля Debug Elm, предназначенного только для помощи во время разработки. Исторически Elm акцентировал внимание на поддерживаемости и обработке ошибок, оставляя модуль Debug намеренно простым. Его простота обеспечивает, что разработчики сосредотачиваются на значимом выводе, а не теряются в обширном наборе средств отладки.

Функция Debug.log Elm принимает два аргумента: строковый тег и данные для записи. Вывод затем печатается в консоль браузера. Альтернативы этому подходу могут быть:

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

С точки зрения реализации, функция Debug.log оборачивает ваши данные идентификатором тега. Это полезно для различения разных точек данных. В производстве компилятор Elm будет помечать любое использование Debug.log, чтобы вы держали ваш код для продакшена чистым от артефактов отладки.

См. также