Функция, возвращающая 2 типа на основе ввода в Perl.Это хороший подход? - PullRequest
1 голос
/ 30 сентября 2011

Я разработал функцию, которая может возвращать 2 разных типа на основе входных параметров

ex: &Foo(12,"count")   -> returns record count from DB for value 12  
    &Foo(12,"details") -> returns resultset from DB for value 12 in hash format

Мой вопрос: это хороший подход?в C # я могу сделать это с перегрузкой функции.

Ответы [ 2 ]

4 голосов
/ 30 сентября 2011

Пожалуйста, подумайте, какая часть вашего кода становится проще, сказав

Foo(12, "count")

вместо

Foo_count(12)

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

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

Кроме того, реализация функции Foo будет смотреть на имя команды, а затем просто разбиваться на частную функцию для каждой команды, верно?

1 голос
/ 30 сентября 2011

Кроме того, вы можете рассмотреть возможность заставить foo возвращать детали, если вам нужен список.

return wantarray ? ($num, @details) : $num;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...