обнаружилась какая-то проблема?
тоже самое говорю https://t.me/pofftop/246134
Так походу та же проблема. Нафиг делать апи которое ломает солид.
где там проблема солида ?
То что у тебя метод может работать с наследниками флов, а может и не работать.
Не всегда легко запретить пользователю написать кривой код. И в случае с toList() сделать это в общем случае нельзя. Эта операция может не иметь смысла и на небесконечных последовательностях.
А контракт Flow где-то обещал, что там ограниченное количество элементов? Где тут сломанный SOLID? Flow - это вообще интерфейс.
Почему тогда открыт tolist?
это интерфейс
Это присобаченная сбоку функция (extension), у которой в доке описано, как она работает. И работает она более чем предсказуемо.
Я понимаю что это. Просто это не делает этот пример хорошим.
toList собирает элементы, пока не закончится флоу и передаёт конечный лист тебе. очевидно что если у флоу нет конца, то он будет собирать их бесконечно.
Как я и говорил, апи которое позволяет сломать себе ногу.
Ну почему же. С тем же успехом можно ругаться на то, что emptyList() ломает солид, ведь first() на нём не работает.
Он разве не работает?
firstOrNull() работает, а first нет
Нет, так же как и last(), fold() и прочее, что явно говорит, что ожидает не пустой список
Они кмдают ошибки же
Обсуждают сегодня