函数重载的用途/优点是什么?
最佳答案
IMO,主要好处是在逻辑上执行非常相似的任务的方法/函数命名的一致性,并且通过接受不同的参数而略有不同。这允许在多个实现中重用相同的方法名称。
例如重载:(好)
function Person[] FindPersons(string nameOfPerson) { ... }
function Person[] FindPersons(date dateOfBirth) { ... }
function Person[] FindPersons(int age, string dogsName) { ... }
比“唯一命名”函数更可取:(更糟)
function Person[] FindPersonsByName(string nameOfPerson) { ... }
function Person[] FindPersonsByDOB(date dateOfBirth) { ... }
function Person[] FindPersonsByAgeAndDogsName(int age, string dogsName) { ... }
通过这种方式,编写调用/使用这些函数的客户端的编码人员可以在更高层次的概念思维(“我需要找到一个人”)上进行操作,并且不需要记住/定位一个人为的函数名称。
对于静态类型,编译器将根据使用参数匹配适用的重载。对于动态类型,同样的匹配会在运行时发生,如果没有找到合适的匹配,可能会导致失败。
关于language-agnostic - 函数重载的用途/优点是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3343913/