LINUX.ORG.RU

История изменений

Исправление den73, (текущая версия) :

Format-List на входе ожидает список, Get-Process может вернуть один элемент, а может список.

По идее Get-Process должен возвращать поток описаний процессов. В этом потоке будет либо один элемент, либо N. Вернуть одно S-выражение нельзя, т.к. это приводит к ухудшению отзывчивости. При печати в поток первые элементы доступны рано. Хотя вроде в XML парсерах есть разные подходы - при одном подходе читаем весь XML файл и потом парсим, а при другом читаем каждую запись, просто некоторые недостроенные записи помечены как недостроенные, и вызывается событие в момент их достройки. В этом случае Format-List всегда возвращает список потоков.

И да, в этом случае мы попадаем в ту ситуацию, о которой ты сказал - внешние скобки оказываются «лишними». Но с философской точки зрения, они не такие уж и лишние, т.к. заставляют сразу подумать о том, что запрос может вернуть более одного объекта. Можно сделать ключ «вернуть только один процесс или сигнализировать ошибку» - это будет более безопасный вариант. При нём не будет ни накладных расходов на лишний car, ни возможности протупить наличие двух процессов - программа внятно обругается достаточно рано.

Исходная версия den73, :

Format-List на входе ожидает список, Get-Process может вернуть один элемент, а может список.

По идее Get-Process должен возвращать поток описаний процессов. В этом потоке будет либо один элемент, либо N. Вернуть одно S-выражение нельзя, т.к. это приводит к ухудшению отзывчивости. При печати в поток первые элементы доступны рано. Хотя вроде в XML парсерах есть разные подходы - при одном подходе читаем весь XML файл и потом парсим, а при другом читаем каждую запись, просто некоторые недостроенные записи помечены как недостроенные, и вызывается событие в момент их достройки.