函数根据Perl中的输入返回2种类型。这是一个好方法吗?

时间:2011-09-30 05:38:23

标签: perl

我设计了一个可以根据输入参数返回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 个答案:

答案 0 :(得分:4)

请通过说

来考虑代码的哪一部分变得更容易
Foo(12, "count")

而不是

Foo_count(12)

我能想到的唯一情况是函数名称(“count”)本身就是输入数据。即便如此,您可能希望对此进行一些验证,可能是通过函数表查找。

除非这是针对只接受命令名并将其传递的中间层,否则我将使用两个单独的函数。

此外,Foo函数的实现将查看命令名称,然后只是为每个命令分成一个私有函数,对吧?

答案 1 :(得分:1)

另外,如果你想要一个列表,你可能会考虑让foo返回详细信息。

return wantarray ? ($num, @details) : $num;
相关问题