Как вернуть необязательную информацию из методов?

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

Возьмем, к примеру, метод dropWhile для Iterator

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

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

Итак, вопрос в том, существует ли какой-нибудь умный способ сбора такой дополнительной информации?

Может быть через параметры Option[X => Unit] с функциями обратного вызова, которые по умолчанию имеют значение None? Есть ли что-нибудь более умное?

12 голосов | спросил ziggystar 24 J0000006Europe/Moscow 2011, 15:43:51

0 ответов


Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132