返回bool(true或false)和返回负值
之间的区别是什么答案 0 :(得分:4)
一个是二进制(成功或失败)另一个是离散值,可用于错误代码。我所做的通常是错误的负值,0表示成功,正值表示警告。
答案 1 :(得分:0)
这取决于您使用的返回值。
答案 2 :(得分:0)
通常在描述流程成功或失败时使用布尔值。
“成功”(返回true
)或“失败”(返回false
)。
某些函数(像socket()
这样的juste)返回一个“套接字描述符”,这是一个正值。在这种情况下,报告出现问题的一种方法是返回无效范围值,从而返回负值。
然而,请记住,这不是绝对的事实。一个开发人员可能决定返回错误的正值,并返回0表示成功。 (就像程序退出状态一样)。
了解返回值意味着什么的唯一方法是阅读文档。
答案 3 :(得分:0)
有时您希望方法根据方法是否成功执行某些代码来返回true / false。
但是,您可能需要有关方法失败原因的更多详细信息,但不能抛出异常(例如,该语言没有异常)。在这种情况下,您可以返回一个整数值作为一种错误代码。
答案 4 :(得分:0)
您正在返回一个可以有两个可能输出的类型的值。
另一个你返回一个类型的值,它可以有更多可能的输出。
顺便说一句,在大多数编程语言中,0被认为是假的,其他一切都被认为是真的。我认为你认为在大多数语言中任何否定都会被认为是错误的。
您可能希望返回许多不同的负数,例如针对不同的错误代码。或者您可能只有一个通过/失败标准。您可以使用布尔或整数返回类型,具体取决于您拥有的场景。
答案 5 :(得分:0)
答案 6 :(得分:0)
如果你需要一个bool结果,如果你需要一个整数,返回一个bool(卡车),返回一个整数(苹果)。 例如,在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');
}
答案 7 :(得分:0)
如果您需要两个以上的返回码(true / false),则必须返回一个整数。在C ++中,有一个BOOL的typedef到int意味着你可以使用BOOL作为返回类型,返回值使用TRUE和FALSE,如果你愿意,可以使用-1表示错误。 BOOL,TRUE和FALSE的typedef只是为了提高代码的可读性,但它只是返回一个int。
答案 8 :(得分:0)
您可能更喜欢使用“out”参数,例如:
public bool MyFunction(object input, out int status) {...}
因此,您可以在函数成功/失败时使用true或false,并为任何其他有关所发生事件的信息设置staus变量。