我知道我能做到這一點:void方法返回void?
void someMethod(){
return;
}
,但我得到
void someMethod(){
return void;
}
語法錯誤爲什麼後者不允許?這對我來說更有意義。
編輯:我知道什麼是無效方法,並且我根本不必從它返回(在大多數情況下可能不應該),但我不明白爲什麼我不能返回void方法無效。在我看來,在方法聲明中應該沒有關鍵字(比如構造函數),如果你能寫return的話。
我知道我能做到這一點:void方法返回void?
void someMethod(){
return;
}
,但我得到
void someMethod(){
return void;
}
語法錯誤爲什麼後者不允許?這對我來說更有意義。
編輯:我知道什麼是無效方法,並且我根本不必從它返回(在大多數情況下可能不應該),但我不明白爲什麼我不能返回void方法無效。在我看來,在方法聲明中應該沒有關鍵字(比如構造函數),如果你能寫return的話。
當您將方法聲明爲void
時,您說這個方法沒有返回值。因此試圖返回一個值是非法的。此外,return void;
有語法錯誤,因爲void
不是(實際上不能是)範圍內變量的名稱。
void
是一種類型,而不是表達式,所以試圖編寫return void
與嘗試編寫return int
相同:語法無效。
那麼沒有什麼是無效的價值? – user2097804 2013-05-06 21:01:47
return x;
指示控制正在離開該方法並且其結果是值爲x
。
return;
指示控件正在離開方法而沒有結果。
void
類型是一個零值類型,因此對於void
方法沒有x
,因此return x
是有意義的。
所有非void的方法必須做的三兩件事之一:
由於void
是僅類型具有零個可能的值(與private
多餘構建函數類不因爲null
計數),存在在非void
方法使得return
有意義沒有可能return
。
http://stackoverflow.com/questions/7795303/why-cant-i-return-a-void-method-call – eidsonator 2013-05-06 20:13:17
它增加了額外的冗長度。所以開發者可能會說「讓我們把它縮短一點,因爲我們可能要寫它十億次。」......... – granadaCoder 2013-05-06 20:13:19
爲什麼要返回任何東西?我不添加任何一行。它比兩者都短。 – duffymo 2013-05-06 20:13:51