问题标签 [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 投票
7 回答
24359 浏览

python - 为什么函数总是返回相同的类型?

我在某处读到函数应始终只返回一种类型,因此以下代码被视为错误代码:

我想更好的解决方案是

返回 None 然后创建一个新的空元组不是更便宜的内存吗?或者这个时间差太小以至于即使在更大的项目中也无法注意到?

0 投票
11 回答
12260 浏览

java - 返回类型为 void 的方法应该使用 return 语句吗?

我知道有时 usingreturn;可以在 Java 中发挥有用的作用,例如保护:

但是,如果只是到达返回类型的方法的末尾void呢?例如,

除了纯粹的风格偏好之外,是否有任何理由支持或反对包括在内return;?如果是这样,它们是什么?

编辑:嗯,很快就得到了回答。总结下面发布的 15 个答案:“不”。

0 投票
10 回答
4969 浏览

c# - C# 函数是否有标准的“永不返回”属性?

我有一种看起来像这样的方法:

现在如果我写

编译器会抱怨 foo “并非所有路径都返回一个值”。

有没有我可以添加到 throwException 的属性来避免这种情况?就像是:

恐怕自定义属性不行,因为为了我的目的,我需要编译器的合作。

0 投票
4 回答
3386 浏览

java - Java泛型扩展方法的返回类型

看看这三个类。Minatchi 允许对其自身进行扩展,以便其方法的返回类型也可以扩展。为了说明,我使用了静态方法。

所以我将 Minatchi 子类化为 Lady

这就是可疑行为发生的地方。

方法 listA 和 listB 本质上是相同的。listA 将列表放入中间变量 uvs 中,而 listB 直接将 listAll 放入 for 循环头中。

但是,对于 listB,编译器会抱怨无法将 Minatchi<?> 转换为 Lady。

所以这个问题是关于Java泛型的设计完整性。另一个仿制药抱怨。

这是 Java 泛型设计者不知道如何解决的故意设计特性还是无意的设计错误。如果是故意的,他们为什么要这样做?如果出现错误,他们是否打算解决它?

或者这是我个人的问题,我不知道声明泛型的更好方法?如果是这样,请告诉我如何。

(我使用了一个通用的 Minatchi 类,因为我也有非静态方法可以暴露给类扩展,我在问题中省略了。)

0 投票
1 回答
809 浏览

c++ - 从使用 equal_range 的多图搜索返回而不会出错

我即将重构一些重复的代码。两个函数都使用 equal_range() 在多图中搜索。在调用 equal_range() 之后的 for 循环中,有一个 for 循环将迭代器设置为 equalRange.first,条件为 it!= equalRange.second。

如果找到正确的值,则两个函数不同。我想做的是将搜索功能作为前面提到的两个使用的自己的帮助功能。

使这项工作不是问题。问题是我无法想出一种方法来使其“简单”和未来证明,以使其对使用此代码的其他人有意义。显然,我想要从搜索功能返回的东西。

如果我要返回一个布尔值来指示是否在多重映射中找到了该值,我必须将一个迭代器传递给指向该元素的多重映射。我觉得这很丑。

如果返回的是迭代器,我们当然必须在使用搜索功能的两个函数中检查边界。我们无法对照 multimap.end() 检查它,因为我们使用了 equal_range,所以 equalRange.second 不必等于 multimap.end()。

使用边界检查 returnIter == checkBound(x) 其中 checkBound(x) 返回 multimap::upperbound(x) 使 checkBound(x) 知道搜索函数的 equal_range 实现。因此,如果其他人要更改搜索功能,则 checkBound(x) 可能无法按预期工作。

我的立场是,搜索功能的用户不应该关心它是如何实现的,即不应该知道它使用了equal_range。

您对此有何意见和建议?我这里是不是太详细了?您将如何实现搜索功能?

谢谢

0 投票
4 回答
5902 浏览

java - 方法返回类型 String 不是 String

首先,我的目标是从 URL 中读取、解析它,并从中获取信息并将其提供给另一个方法sendMessage,然后将其发送到 IRC 客户端。我做java的时间不长,所以我正在修改我在互联网上找到的代码。以下方法在它们自己的类文件中声明时起作用,并通过将 URL 传递给 main 方法来运行,但我似乎无法通过调用类MyBot或在我的MyBot文件中声明方法来使其工作。

现在主要我有以下内容:

我在尝试编译时遇到的错误如下:

p>

所以似乎是在说 MyURL 不是字符串,但方法返回类型是字符串..所以我显然是这里的东西(可能我使用返回错误?)

非常感谢任何人的帮助,如果有比这更好的方法来做我想做的事,我也很乐意听到:) 谢谢!

编辑:对于告诉我将 myURL.WebURL(myArray) 传递给 sendMessage 的前几个答案,我已经这样做了,但是得到了以下错误,这让我更加困惑:

unreported exception java.lang.Exception; must be caught or declared to be throw 我知道这是因为 WebURL 引发了一个异常,但是当我声明一个字符串时我不知道如何声明/捕获它。

0 投票
4 回答
397 浏览

c++ - Pimpl 习惯用法:如果实现未知,使用什么 size_type?

我有一个包含元素数组的类,我想给它一个GetSize成员函数。但是我应该给那个函数什么返回类型呢?

我正在使用 pimpl 习惯用法,因此在头文件中不知道实现将使用什么来存储元素。所以我不能只说std::vector<T>::size_type,例如:

0 投票
3 回答
29830 浏览

java - Java中的返回类型布尔值

boolean我对返回类型有疑问。检查以下代码:

代码示例 1

代码示例 2

在上面的两个示例中,代码编译正确,没有任何编译时或运行时异常。我的疑问是,Java 并没有强制boolean在调用程序中分配返回类型,而对于其他数据类型,程序不起作用。你能向我解释一下这个原因吗?

0 投票
5 回答
4684 浏览

c# - .NET ParameterizedThreadStart 错误的返回类型

我刚开始尝试使用 Threads,但遇到了一个我自己无法解决的问题。我收到错误:错误 1 ​​'bool projekt.ftp.UploadFil (object)' has the wrong return type

我使用这段代码使用 ftp.Uploadfile 方法启动一个线程:

这就是我使用的方法。

0 投票
1 回答
1025 浏览

struct - C-structs、NSObjects、float、int、double、

首先:这是一个问题,很抱歉,但我希望有人能帮助我!

我正在 iPhone 上制作 UIML 渲染器。UIML 是一种描述接口的语言。我想渲染 XML 并在 iPhone 上显示界面。

为了更好地通知您,我首先解释一下我在做什么:

这是一个 UIML 文档(一个界面)。这是一个简单的 ViewController,带有一个 View 和一个带有文本“Dit is een label”的标签。我正在做一些非常抽象的东西。

当我解析文档时,我发现 class="ViewController"

然后我们必须查看词汇表:

为了方便你们,我只是粘贴了一部分词汇。

在这个词汇表中,我们发现:

我正在运行时制作一个 UILabel:

然后我必须将属性应用到 createdObject。我们有 2 个属性:文本和位置。

我们在词汇表中寻找它们(我们以位置为例)

如您所见,我需要 maps-to 和 d-param 来调用该方法。但是有一个问题:在第一个文档中,我们有:

首先,我必须将字符串 50,50,100,150 “解码”为 CGRect,因为 setFrame: 需要一个 CGRect 作为参数。但是有一个大问题。我必须使这个非常抽象,但是 CGRect 不是从 NSObject 继承的,因此我不能创建一个函数

因为 CGRect 不是 NSObject*。

当我必须传递浮点数时会出现同样的问题(例如传递给 UISlider)

我不能返回浮点数,因为 NSObject 不是它的超类。

我的转换方法如下所示:

我调用它的方法非常抽象,而且必须是抽象的,因为我们想在不添加代码的情况下扩展 UIML 文档(词汇表)。这是从中调用 this 的方法:

对不起这个困难的问题,但我希望有人能帮助我!