2010-06-11 67 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) {...} 

使他們成功/失敗的功能,你可以有真或假,以及有關的任何其他信息的居留制變量發生了什麼事。