Questions tagged «return-value»

返回值是对return语句求值的结果。

24
返回无效的不良设计吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 2年前关闭。 改善这个问题 我听到一些声音说,从方法中检查返回的空值是错误的设计。我想听到一些原因。 伪代码: variable x = object.method() if (x is null) do something
127 oop  null  return-value 

5
从Shell脚本中的被调用函数返回值
我想从外壳程序脚本中调用的函数返回值。也许我缺少语法。我尝试使用全局变量。但这也不起作用。代码是: lockdir="somedir" test() { retval="" if mkdir "$lockdir" then # Directory did not exist, but it was created successfully echo >&2 "successfully acquired lock: $lockdir" retval="true" else echo >&2 "cannot acquire lock, giving up on $lockdir" retval="false" fi return retval } retval=test() if [ "$retval" == "true" ] then echo …

8
我应该从main()返回EXIT_SUCCESS还是0?
这是一个简单的问题,但是我不断看到矛盾的答案:C ++程序的主例程应该返回0还是EXIT_SUCCESS? #include <cstdlib> int main(){return EXIT_SUCCESS;} 要么 int main(){return 0;} 他们是一回事吗?如果EXIT_SUCCESS只使用exit()? 我认为EXIT_SUCCESS这是一个更好的选择,因为其他软件可能希望将零视为失败,但是我还听说,如果返回0,则编译器仍然能够将其更改为其他值。
124 c++  c  return-value  main 

8
如何优雅地忽略MATLAB函数的某些返回值?
是否可以从函数中获取“ nth”个返回值,而不必n-1在此之前为所有返回值创建伪变量? 假设我在MATLAB中具有以下功能: function [a,b,c,d] = func() a = 1; b = 2; c = 3; d = 4; 现在假设,我只对第三个返回值感兴趣。这可以通过创建一个虚拟变量来实现: [dummy, dummy, variableThatIWillUse, dummy] = func; clear dummy; 但是我认为这有点丑陋。我认为您可能可以执行以下操作之一,但不能: [_, _, variableThatIWillUse, _] = func; [, , variableThatIWillUse, ] = func; variableThatIWillUse = func(3); variableThatIWillUse = func()(3); 是否有任何优雅的方式来做到这一点做的工作? 到目前为止,最好的解决方案是简单地将variableThatIWillUse用作虚拟变量。这使我不必创建一个真正的伪变量,该变量会污染工作空间(或者我需要清除)。简而言之:解决方案是variableThatIWillUse对每个返回值使用直到有趣的值。之后的返回值可以简单地忽略: [variableThatIWillUse, …


5
返回一个Void对象
Void如果不是原始类型,返回类型的正确方法是什么?例如。我目前使用null如下。 interface B<E>{ E method(); } class A implements B<Void>{ public Void method(){ // do something return null; } }

5
单值上下文中的多个值
由于Go中的错误处理,我经常会遇到多个值函数。到目前为止,我的处理方式非常混乱,我正在寻找编写更简洁代码的最佳实践。 假设我具有以下功能: type Item struct { Value int Name string } func Get(value int) (Item, error) { // some code return item, nil } 我如何item.Value优雅地分配一个新变量。在引入错误处理之前,我的函数刚刚返回item,我可以简单地做到这一点: val := Get(1).Value 现在,我这样做: item, _ := Get(1) val := item.Value 有没有办法直接访问第一个返回的变量?

8
在C ++中返回std :: vector的有效方法
在函数中返回std :: vector时,要复制多少数据,以及将std :: vector放入免费存储(在堆中)并返回指针的优化有多大,即: std::vector *f() { std::vector *result = new std::vector(); /* Insert elements into result */ return result; } 比: std::vector f() { std::vector result; /* Insert elements into result */ return result; } ?


9
我可以在Eclipse中进行调试时在返回之前找出返回值吗?
在运行该行之后,在指令指针返回到调用函数之前,是否可以看到方法的返回值? 我正在调试无法修改的代码(阅读:不想重新编译第三方库),有时它会跳转到我没有源代码的代码,或者return表达式有副作用,使我无法只需在“ 显示”标签中运行表达式即可。 通常在复合语句中使用返回值,因此Variables视图将永远不会向我显示该值(因此希望在控件返回到调用函数之前先查看结果)。 更新:我不能使用表达式查看器,因为该语句中有副作用。

4
每个Javascript函数都必须返回一个值吗?
我写的是,我正在使用Netbeans向每个函数添加类似专业的注释。因此,我从每一个开始/**,然后按Enter来让Netbeans完成用于以下功能的默认注释方案。 到目前为止,我只在PHP语言中使用过这种语言,在这种情况下@returns {type},如果遵循PHP函数确实包含了return声明,则Netbeans始终仅在注释方案中添加部分内容。在所谓的“过程”(不返回任何值的函数)上,缺少此部分。 今天,我为Javascript函数尝试了同样的事情,@returns {undefined}即使跟随函数不返回任何内容,Netbeans也在注释方案中添加了一部分。 这让我感到困惑。Netbeans是否以这种方式建议每个Javascript函数都必须返回任何内容?我该怎么办?忽略(或删除)该注释方案的一部分或遵循建议(如果完全是建议),并return false;在此功能的末尾添加,尽管这对我来说毫无用处?

8
如果找不到搜索结果,则返回“ NULL”对象
我对C ++相当陌生,因此在学习时,我倾向于使用许多Java风格进行设计。无论如何,在Java中,如果我有一个带有“搜索”方法的类,该类T将从Collection< T >与特定参数匹配的对象中返回一个对象,则将返回该对象,如果在集合中未找到该对象,则将返回null。然后在我的调用函数中,我只是检查if(tResult != null) { ... } 在C ++中,我发现null如果对象不存在,则无法返回值。我只想返回类型T的“指示器”,通知调用函数没有找到对象。我不想抛出异常,因为这并不是真正的例外情况。 这是我的代码现在的样子: class Node { Attr& getAttribute(const string& attribute_name) const { //search collection //if found at i return attributes[i]; //if not found return NULL; // what should this be? } private: vector<Attr> attributes; } 我该如何更改它才能给出这种标记?


9
函数返回多个值是否为pythonic?
在python中,您可以让函数返回多个值。这是一个人为的例子: def divide(x, y): quotient = x/y remainder = x % y return quotient, remainder (q, r) = divide(22, 7) 这似乎很有用,但是看起来它也可以被滥用(“ ..功能X已经计算出我们需要的中间值。让X也返回该值”)。 您何时应该画线并定义其他方法?

4
结构有什么特别之处?
我知道在C语言中,我们不能从函数返回数组,而只能返回指向数组的指针。但是我想知道有什么特别之处structs,即使它们可能包含数组,它们也可以由函数返回。 为什么struct包装使以下程序有效? #include <stdio.h> struct data { char buf[256]; }; struct data Foo(const char *buf); int main(void) { struct data obj; obj = Foo("This is a sentence."); printf("%s\n", obj.buf); return 0; } struct data Foo(const char *buf) { struct data X; strcpy(X.buf, buf); return X; }

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.