函数重载的用途/优点是什么?

2024-03-13

函数重载的用途/优点是什么?


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) { ... }

这样,编写调用/使用这些函数的客户端的编码人员可以在更高层次的概念思维(“我需要找到一个人”)下进行操作,并且不需要记住/找到人为的函数名称。

使用静态类型,编译器将根据使用参数来匹配适用的重载。对于动态类型,相同的匹配将在运行时发生,如果没有找到适当的匹配,可能会导致失败。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

函数重载的用途/优点是什么? 的相关文章

  • 优雅降级 - 何时考虑

    在为使用 AJAX 的应用程序设计和构建 UI 时 您何时考虑优雅降级 对于禁用 JavaScript 或正在使用屏幕阅读器的用户 最后 网站的 AJAX 版本完全完成后 在每个发展阶段 I don t 还有别的事 这些日子 渐进增强 ht
  • “对象之间通过传递消息进行通信”到底是如何实现的?

    在几本有关面向对象编程的介绍性文本中 我遇到过上述陈述 来自维基百科 在 OOP 中 每个对象都能够接收消息 处理数据 以及发送消息与其他对象相关 并且可以被视为具有独特角色或责任的独立 机器 该语句在代码中到底意味着什么 class A
  • PHP 中的抽象类是什么?

    PHP 中的抽象类是什么 如何使用 抽象类是至少包含一个抽象方法的类 该方法中没有任何实际代码 只有名称和参数 并且已被标记为 抽象 这样做的目的是提供一种模板来继承并强制继承类实现抽象方法 因此 抽象类是介于常规类和纯接口之间的东西 此外
  • 使用组合时如何解决循环依赖?

    我遇到了如下所示的情况 其中每个类都需要另一个类 并且它创建了循环依赖关系 我在使用 ctypes 包装一些 C 代码时遇到了这种情况 已经有很多关于这个主题的帖子 但我发现它们没有帮助 我需要一些例子 Module A from B im
  • 如何在 Perforce 树中查找未跟踪的文件? (svn状态的模拟)

    有人有脚本或别名来查找 Perforce 树中未跟踪 实际上 未添加 的文件吗 编辑 我更新了对此已接受的答案 因为看起来 P4V 在 2009 年 1 月的版本中添加了对此的支持 EDIT 请用p4 status现在 不再需要跳圈了 参见
  • 如何高效计算连续数的数字积?

    我正在尝试计算数字序列中每个数字的数字乘积 例如 21 22 23 98 99 将会 2 4 6 72 81 为了降低复杂性 我只会考虑 连续的数字 http simple wikipedia org wiki Consecutive in
  • 查找两个大小为 n 的数组中第 n 大数的算法

    我有这个问题 给定两个大小为 n 的排序列表 存储在数组中 找到 O log n 计算并集中第 n 大元素的算法 两个列表 我可以看到这里可能有一个技巧 因为它需要第 n 个最大的元素 并且数组的大小也是 n 但我不知道它是什么 我在想我可
  • OOP概念混乱?

    在阅读一些编程书籍时 我注意到作者说 在OOP中 你在理解OOP的主要思想时可能会有些困惑 是啊 我有些困惑 您是否也有同样的情况 是什么让程序员 甚至是经验丰富的程序员 感到困惑 如果你拥有它 你怎么能打败这个 Thanks The An
  • 拦截对对象属性的 __getitem__ 调用

    问题 我怎样才能拦截 getitem 调用对象属性 解释 所以 场景如下 我有一个对象将类似字典的对象存储为属性 每次 getitem 该属性的方法被调用 我想拦截该调用并根据键对获取的项目进行一些特殊处理 我想要的看起来像这样 class
  • 如何发布/销售/推广半商业/开源项目? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我已经开发了一个 PHP 框架 总共花了大约 3 周的时间 但它已经准备好发布了 如果我选择这样做的话 在目前的经济形势下 我不能仅仅接受
  • 更改代码使用指针实现多对多关系

    我在 Movie hpp 中有以下代码 ifndef MOVIE H define MOVIE H class Movie private std string title public std string getTitle const
  • 如何设计/规划Web应用程序开发?

    我有兴趣学习如何在多个开发团队场景中设计 规划 Web 应用程序开发 担任 项目经理 主管 的角色 成功的 Web 应用程序开发需要哪些 文档 需要哪些 UML 图以及需要到什么程度 在设计 计划阶段 是否需要根据用例对每个类进行图表化 类
  • 如何访问带有美元符号的 PHP 对象属性?

    我有一个 PHP 对象 其属性中有一个美元 符号 如何访问该属性的内容 例子 echo object gt variable Ok echo object gt variable WithDollar Syntax error With 变
  • 广度优先搜索:检查访问状态的时机

    在有向图的广度优先搜索中 可能循环 当一个节点出队时 其所有尚未访问的子节点都会入队 并且该过程将继续 直到队列为空 有一次 我以相反的方式实现它 将节点的所有子节点排队 并在节点出队时检查访问状态 如果正在出队的节点之前已被访问过 则该节
  • 如何以最小化每个分区总和的最大值的方式对整数数组进行分区?

    输入是正整数或空整数的数组 A 和另一个整数 K 我们应该将 A 划分为 K 个连续元素块 我所说的 划分 是指 A 的每个元素都属于某个块 并且 2 个不同的块不包含任何共同元素 我们将块的总和定义为该块的元素的总和 目标是在 K 个块中
  • 如何为所有语言创建字母数字正则表达式?

    我今天遇到了这个问题 此正则表达式仅匹配英语 a zA Z0 9 如果我需要支持这个世界上的任何语言 我应该编写什么正则表达式 如果您使用字符类简写和 Unicode 识别正则表达式引擎 您就可以做到这一点 这 wclass 匹配 单词字符
  • 如何在 Python 中创建对象的副本?

    我想创建一个对象的副本 我希望新对象拥有旧对象的所有属性 字段的值 但我想要有独立的对象 因此 如果我更改新对象的字段值 旧对象不应受到影响 要获得对象的完全独立的副本 您可以使用copy deepcopy http docs python
  • 线性问题和非线性问题之间的区别?点积和核技巧的本质

    核技巧将非线性问题映射为线性问题 我的问题是 1 线性问题和非线性问题的主要区别是什么 这两类问题的差异背后的直觉是什么 核技巧如何帮助在非线性问题上使用线性分类器 2 为什么点积在这两种情况下如此重要 Thanks 当人们说到分类问题的线
  • 如何限制受保护的成员只能从第一级子 C# 访问

    我有3个级别的课程 TopClass MiddleClass BottomClass And MiddleClass源自TopClass and BottomClass源自MiddleClass 我想在以下地区拥有房产TopClass只能从
  • 推断“x => { throw .. }”的 Lambda 与重载方法中的 Func 匹配吗?

    我不明白为什么 C 最终在以下 LINQPad 代码中执行不正确的扩展方法 void Main Actual Sync Action Expected Sync Action Run x gt x Dump Actual Async Tas

随机推荐

  • 如何使 Autodesk Forge Viewer 支持 .rcp 文件

    我有一个 Web 项目 React 使用 Autodesk Forge Viewer 显示我们的企业 BIM360 帐户中的 3D 和 2D 模型 自去年以来 在 BIM360 中运行的同一查看器现在支持 rcp文件 我们也希望允许它 但到
  • 下载文件时文件名中出现空格问题

    以下 java 代码用于通过 Web 应用程序下载请求日志文件 protected HttpServletResponse response response setContentType application octet stream
  • W3C HTML 验证器中的 Angular2 语法

    Angular 1 x 允许将元素放入 HTML 中 而这在当时并不为人所知W3C HTML 验证器 https validator w3 org nu 解决方法是添加data 前缀并写入例如data ng repeat代替ng repea
  • 从 Java 中的 JSON 数组对象获取字符串值

    编辑 我实际上找到了答案 我无法关闭问题 因为我是新人 我能够使用 Array getString i 返回所需的字符串值 感谢您的所有帮助 我有这样的 JSON List example1 example2 example3 exampl
  • 如何使 xtick 与 Python matplotlib 中的 xlim 不同?

    我想用 Python 制作一年中每天的动态图 X轴的axes将是12个月 这个过程在Matplotlib中将是一个barh 代码如下 import random import datetime import matplotlib pyplo
  • PHP:定义具有可变参数计数的函数? [复制]

    这个问题在这里已经有答案了 有没有一种方法可以在 PHP 中定义一个函数 让您定义可变数量的参数 用我更熟悉的语言来说是这样的 function myFunction rest rest array of params return res
  • 如果不存在则不工作

    IF NOT EXISTS SELECT FROM user WHERE name Rutvij AND lang python BEGIN INSERT INTO user VALUES Rutvij python 25 END ELSE
  • jQuery UI 对话框的行为不可预测

    jQuery UI 对话框让我感到厌烦 据我所知 它的工作原理如下 当你这样做时 myDialog dialog 它复制 myDialog 元素并将其移动到 body 标记底部的这个奇怪的小部件中 这太疯狂了 执行此操作时 它会复制可能唯一
  • Ruby 按列对 .dat 文件进行排序

    我对红宝石很陌生 我正在尝试打开文件 dat 并按第二列降序排序 到目前为止 我能够打开该文件并阅读全部内容 请问有什么建议吗 非常感谢 file 1 88 59 74 53 8 0 00 280 9 6 270 17 1 6 93 23
  • 使用 Carrierwave 和 rmagick 上传到 s3 的 exif 图像旋转问题

    我的 Rails 应用程序中有照片上传功能 该应用程序通过 rmagick 和雾通过 Carrierwave 直接上传到 s3 我遇到的问题是 当通过手机通过肖像中的 拍照选项 上传照片时 注意这是 iPhone 上的 但我相信 Andro
  • iOS Facebook SDK“必须使用活动访问令牌来查询有关当前用户的信息。”

    我有一个令牌 但不断收到此错误 必须使用活动访问令牌来查询有关当前用户的信息 如有任何帮助 我们将不胜感激 NSLog TOKEN FBSession activeSession accessToken NSString picture N
  • 使用其他自变量的所有可能组合获取许多模型中特定变量的 p 值

    我正在尝试使用一组自变量的所有可能组合来运行许多回归模型 在此示例中 我对以下系数感兴趣cyl与列出的其他变量的所有可能组合xlist df lt mtcars md lt mpg cyl xlist lt c disp hp am n l
  • 为什么 Spring-Data-JPA 异步不起作用?

    我正在尝试使用 Spring Boot 和 Spring data JPA 创建一个非阻塞休息服务 如何使用 Spring Data JPA Async 支持对实体进行异步保存 尽管其他选择似乎在同一实体上工作 但下面的代码对我不起作用 我
  • 从 R 中的箱线图框架中删除顶部和右侧边框

    有谁知道如何删除 R 中箱线图框架的顶部和右侧边框 我尝试过参数frame FALSE 但这会删除除左侧 y轴 之外的所有边 我只想显示 x 轴和 y 轴 提前致谢 我认为你需要使用axis side 1 绘图后 x lt 1 5 boxp
  • 我可以使用什么工具来合并 wsdl 和 xsd 文件?

    我有两个文件 一个包含 Web 服务描述 wsdl 第二个包含 Web 服务中使用的数据结构 xsd 我什么都没有了 网络服务还不能工作 我需要将它们合并为一个 因为 Delphi 7 WSDL Importer 不能很好地处理包含的 xs
  • Python 在池映射中使用列表/多个参数

    我正在尝试将列表作为参数传递给pool map co refresh input list 然而 pool map没有触发该功能co refresh 并且也没有返回错误 看起来这个过程挂在那里 原始代码 from multiprocessi
  • 更改 VS Code 中注释周围字符的颜色

    如何更改 VS Code 中注释前后字符的颜色 我正在谈论 or 或 字符 我知道如何更改评论颜色 如何更改 Visual Studio 代码中注释的颜色 https stackoverflow com questions 45195023
  • TypeScript - 扩展标准库 Math 的类型定义

    我想使用 javascript 库 种子随机 js https github com davidbau seedrandom 在 TypeScript 项目中 尚无法弄清楚如何为此库编写类型定义 该库使用附加方法扩展了标准 javascri
  • 使用下载管理器下载后安装 apk 并退出应用程序

    我已经创建了一个 Android 应用程序 如果有任何新版本发布 它将从服务器自动开始使用内置的 下载管理器 下载 为了在完成下载后自动安装 我创建了一个广播接收器来通知下载已完成并完成 然后我开始安装它 在我停留在应用程序中时它工作正常并
  • 函数重载的用途/优点是什么?

    函数重载的用途 优点是什么 IMO 主要的好处是方法 函数命名的一致性 这些方法 函数在逻辑上执行非常相似的任务 并且在接受不同的参数方面略有不同 这允许在多个实现中重复使用相同的方法名称 例如过载 好 function Person Fi