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