У меня есть ощущение, что мы увидим разные мнения по этому вопросу.Не уверен, что существует лучшая практика.
Я обычно предпочитаю сложные типы данных, потому что я чувствую, что это больше соответствует исходной структуре функций, где выходной параметр предшествовал входным параметрам в сигнатуре.По сути, мне не нравятся параметры - они излишни.Всякий раз, когда есть два способа сделать что-то на языке программирования, вы усложняете ненужное (думаю, я буду убит фанатами Perl, утверждающими это).Вы возвращаете данные с помощью оператора return.Period.
Это говорит о том, что я все еще часто использую параметры, когда мне нужно вернуть два параметра, которые не имеют естественной группировки - т.е. оказались бы в классе, который будет использоваться исключительно в возвращаемом значении этогоконкретная функция.
Всякий раз, когда в возвращаемых данных есть три или более параметров, я никогда не использую их просто потому, что нахожу вызывающий код слишком многословным - мне нужно затемнить переменные (или var'em в C #)