我设计了一个可以根据输入参数返回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#中我可以用函数重载来做。
答案 0 :(得分:4)
请通过说
来考虑代码的哪一部分变得更容易Foo(12, "count")
而不是
Foo_count(12)
我能想到的唯一情况是函数名称(“count”)本身就是输入数据。即便如此,您可能希望对此进行一些验证,可能是通过函数表查找。
除非这是针对只接受命令名并将其传递的中间层,否则我将使用两个单独的函数。
此外,Foo函数的实现将查看命令名称,然后只是为每个命令分成一个私有函数,对吧?
答案 1 :(得分:1)
另外,如果你想要一个列表,你可能会考虑让foo返回详细信息。
return wantarray ? ($num, @details) : $num;