问题标签 [return-type]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
6048 浏览

c# - 如何将 .net 属性应用于返回类型

如何将 MarshalAsAttribute 应用于下面代码的返回类型?

0 投票
18 回答
406806 浏览

c++ - main() 在 C 和 C++ 中应该返回什么?

main()在 C 和 C++中定义函数的正确(最有效)方法是什么——int main()或者void main()——为什么?论点又如何?如果int main()那么return 1return 0


这个问题有很多重复,包括:

有关的:

0 投票
5 回答
6971 浏览

polymorphism - 类 C 语言中的返回类型多态性

为什么我们看不到允许在返回类型中具有多态性的可调用对象的类 C 语言?我可以看到额外的类型推断将如何成为一个障碍,但我们有很多具有成熟类型推断系统的语言(适用于不同级别的“工作”)。

编辑:通过返回类型多态性,我的意思是仅在返回类型中重载函数签名。例如,C++ 和 Java 只允许在形式参数的类型中重载,而在返回类型中不允许重载。

0 投票
3 回答
9948 浏览

java - MySQL 中 SUM 结果的数据类型

使用 SUM 时,我在将 MySQL 查询的结果转换为 Java 类时遇到了一些问题。

在 MySQL 中执行简单 SUM 时

作为一个整数,price看起来SUM有时返回一个字符串,有时返回一个整数,具体取决于 JDBC 驱动程序的版本。

显然,服务器确实告诉 JDBC 驱动程序的结果SUM是一个字符串,而 JDBC 驱动程序有时会“方便地”将其转换为整数。(见马克马修斯的解释)。

Java 代码使用一些BeanInfoIntrospection自动用查询结果填充(列表)bean。但是,如果部署应用程序的服务器之间的数据类型不同,这显然是行不通的。

我不在乎我得到的是字符串还是整数,但我希望始终拥有相同的数据类型,或者至少提前知道我将获得哪种数据类型。

有什么方法可以知道 MySQLSUM从 Java 代码中返回哪种数据类型?或者有谁知道一些更好的方法来处理这个问题?

0 投票
11 回答
4280 浏览

java - 如何避免使用异常进行流控制?

我被分配了一个项目来开发一组充当存储系统接口的类。要求是该类支持具有以下签名的 get 方法:

基本上,该方法应该返回CustomObjectkeyif 关联的且仅当对象在 之后被修改时ifModifiedSince。如果存储系统不包含,key则该方法应返回 null。

我的问题是这样的:

如何处理密钥存在但对象未修改的情况

这很重要,因为使用此类的一些应用程序将是 Web 服务和 Web 应用程序。这些应用程序需要知道是返回 404(未找到)、304(未修改)还是 200(好的,这是数据)。

我正在权衡的解决方案是:

  1. 当存储系统不包含 key
  2. 失败时抛出自定义异常 ifModifiedSince
  3. 将状态属性添加到 CustomObject。要求调用者检查属性。

我对这三个选项中的任何一个都不满意。我不喜欢选项 1 和 2,因为我不喜欢使用异常进行流控制。当我的意图是表明没有值时,我也不喜欢返回值

尽管如此,我倾向于选项3。

有没有我不考虑的选项?有没有人对这三个选项中的任何一个有强烈的感觉?


这个问题的答案,意译:

  1. 提供一个contains 方法并要求调用者在调用之前调用它get(key, ifModifiedSince),如果key不存在则抛出异常,如果object没有被修改则返回null。
  2. 将响应和数据(如果有)包装在复合对象中。
  3. 使用预定义的常量来表示某种状态 ( UNMODIFIED, KEY_DOES_NOT_EXIST)。
  4. 调用者实现了用作回调的接口。
  5. 设计很烂。

为什么我不能选择答案#1

我同意这是理想的解决方案,但我已经(不情愿地)驳回了它。这种方法的问题在于,在使用这些类的大多数情况下,后端存储系统将是第三方远程系统,如 Amazon S3。这意味着一种contains方法将需要到存储系统的往返行程,在大多数情况下,这之后会进行另一次往返行程。因为这会花费时间和金钱,所以这不是一种选择。

如果没有这种限制,这将是最好的方法。

(我意识到我没有在问题中提到这个重要元素,但我试图保持简短。显然它是相关的。)


结论:

在阅读了所有答案后,我得出结论,在这种情况下,包装器是最好的方法。本质上,我将模仿 HTTP,使用元数据(标头)包括响应代码和内容主体(消息)。

0 投票
6 回答
497 浏览

java - 为什么函数没有参数化的返回类型,因为它有参数化的输入?

这总是迫使我们返回一个参数,以防我需要返回多个参数,比如一个列表和一个字符串。函数参数中不存在此限制。

0 投票
8 回答
2466 浏览

java - 如何在项目中搜索返回 Collection 接口实现的所有方法?

我一直在阅读 Josh Bloch 的“Effective Java 2nd Edition”。第 43 项声明“返回空数组或集合,而不是空值”。我的问题是如何搜索项目中返回 java.util.Collection 接口实现的所有方法?使用的 IDE 是 Eclipse,但任何找到正确结果的方法都是可以接受的,例如正则表达式或其他一些 IDE。

0 投票
14 回答
6042 浏览

c# - 我应该从函数返回数组还是集合?

从函数返回多个相同类型的对象时,首选的容器类型是什么?

返回一个简单的数组(如 MyType[])是否违反良好习惯,还是应该将其包装在某个通用容器中(如 ICollection<MyType>)?

谢谢!

0 投票
8 回答
3550 浏览

c++ - 让所有 setter 函数返回对 c++ 中对象的引用是否很好?

让所有 setter 函数返回对 c++ 中对象的引用是否很好?

0 投票
11 回答
17068 浏览

c# - String 或 StringBuilder 返回值?

如果我在方法中使用 StringBuilder 对象构建字符串,是否有意义:

返回 StringBuilder 对象,让调用代码调用 ToString()?

或通过自己调用 ToString() 返回字符串。

我想如果我们返回小字符串或大字符串会有所不同。在每种情况下什么是合适的?提前致谢。

编辑:我不打算进一步修改调用代码中的字符串,但好点 Colin Burnett。

主要是返回StringBuilder对象还是字符串更有效?会返回对字符串的引用还是副本?