2010-06-11 51 views
-3

什么是返回一个布尔值(true或false)以及返回负值布尔真或假,负收益

+2

这取决于你的语言。 – ChrisF 2010-06-11 14:02:47

+17

驾驶卡车或吃苹果有什么区别? – ereOn 2010-06-11 14:02:58

+1

正是你(OP)所说的:它是返回一个bool(true或false)和返回一个负值*之间的区别。 – 2010-06-11 14:04:06

回答

0

这取决于你所使用的返回值之间的尊重。

4

一个是二进制的(成功或失败)另一个具有可用于错误代码的离散值。我所做的一般是错误的负值,成功值为0,警告值为正值。

0

通常在描述进程的成功或失败时使用布尔值。

某些“成功”(返回true)或“失败”(返回false)。

某些函数(如socket())会返回一个“套接字描述符”,它是一个正值。在这种情况下,报告出现问题的一种方法是返回超出有效范围的值,因此为负值。

但是,请记住,这不是一个绝对的事实。一个开发人员可能会决定返回一个错误的正值,并返回0以取得成功。 (就像程序退出状态一样)。

知道返回值意味着什么的唯一方法是阅读文档

0

有时候你想要一个方法根据方法是否成功执行一些代码来返回true/false。

但是,您可能需要关于方法失败原因的更多详细信息,但不能抛出异常(例如,该语言没有例外)。在这种情况下,您可以返回一个整数值作为一种错误代码。

0

您正在返回一个可能有2个可能输出的类型的值。

另一个你正在返回一个类型的值,可以有更多的可能产出。

顺便说一句,在大多数编程语言中,0被认为是错误的,其他所有事情都被认为是真实的。我认为你认为在大多数语言中任何负面都会被认为是错误的。

您可能想要返回一些不同的负数,例如针对不同的错误代码。或者你可能只是有一个通过/失败的唯一标准。你可以使用布尔型或整型返回类型,具体取决于你有哪些场景。

+1

是的你的权利,因为我看到许多代码返回负面,有时正面,所以这让我困惑 – Fiasco 2010-06-11 14:13:26

0
  • 当您的 方法仅返回yes/no时,使用布尔值返回值。
  • 当您需要指示 以外的其他内容时,请使用数字,除了成功完成 。
0

如果你需要一个布尔结果,如果你需要一个整数,返回一个布尔(卡车),返回一个整数(苹果)。 例如,在JavaScript,你可以做

var ret = 0; 
if (ret){//is ret true? 
    alert('Never gets here'); 
} 

if (!ret){//is ret false? 
    alert('I will popup'); 
} 

但如果你真的需要测试一个布尔值,你必须做到:

var ret = 0; 
if (ret === true){//if it is true AND boolean 
    alert('Never gets here'); 
} 

var ret = false; 
if (ret === false){//if it is false AND boolean 
    alert('I will popup'); 
} 
0

如果你想要两个以上的返回码(真/假)那么你将不得不返回一个整数。在C++中,BOOL的int类型定义为int,这意味着您可以使用BOOL作为返回类型,对于返回值,使用TRUE和FALSE,如果您愿意,可以使用-1。 BOOL,TRUE和FALSE的typedefs只是为了提高代码的可读性,但它只是返回一个int。

0

你可能更愿意使用一个“出”参数,例如:

public bool MyFunction(object input, out int status) {...} 

使他们成功/失败的功能,你可以有真或假,以及有关的任何其他信息的居留制变量发生了什么事。

相关问题