簡談Java中的return

海詩美妝發表於2008-06-04

有位學習Java的朋友,問我return到底有什麼意義,return只不過返回一個值,除此之外他還有其他存在的意義嗎?

當然,我在剛剛學習 Java的時候也有類似的想法,這主要是因為剛開始學習Java語言,通常是以寫main方法的內容來熟悉Java的語法和程式語言的基本的思維方式。另 一個原因是剛開始學習程式語言,程式碼量很小,也很難突出return存在的意義,所以return僅僅是一個Java中不可缺少的概念。

寫Java的方法 如果不是void那就一定有return,這就像漢字一定要由各種各樣的偏旁不受組成一樣,只需為什麼這樣,根本就不需要考慮。當初我剛開始接觸Java 的時候,想法就是如此簡單。

但是,隨著讀寫程式碼的量不斷增加,特別是參加工作之後,接觸到實際業務中運用的程式程式碼,我發現,return雖然很簡單,而且的確是簡單到只是返回一個值,但是作用卻是超出想象的。甚至在很多情況下,靈活的運用return可以讓工作變得很輕鬆。

下面舉幾個例子,參考下面的程式碼:


1.首先來看3-6行程式碼 這是最簡單的應用,剛開始學Java的時候基本上都從這裡開始,也是基礎中的基礎。

其中,第5行的寫法多種多樣,

很多人喜歡類似於如下的寫法:


這種寫法雖然沒有語法錯誤,但是大多數情況下我無法找到建立變數c的理由,他除了耗費記憶體與滿足某些人的喜好之外我不知道他還有其他別的什麼用處,所以我更喜歡return 1+2;的寫法。

如果你開始嘗試讀JDK的程式碼,你會發現,SUN也比較鍾情“return 1+2;”這種coding的方式。

2.另一個應用 當一個方法中宣告瞭return,那麼也就意味著這個方法的執行結束。

看程式碼的14行你會發現,當被帶入的文字串的格式不是數字的時候,那麼其後的處理b + a也就沒有執行的意義,當知道a為無效值得一瞬間,結束方法的運算可能是效率最高的方法。

當然,結束方法執行的方式有很多,除了return之外,你也可以用Exception處理。 但是當你不想把方法的執行結果拋入Exception,但是又想在中途結束方法,return可能是最好的選擇。

這 裡特別強調的是,如果14行以後的處理非常冗長,當知道a為無效之後不直接採取return等直接結束方法處理,那麼可能唯一的辦法就是把一段冗長的處理 新增到一個大的if{....}裡面,這不僅降低了程式碼的可讀性,也讓本可以很容易看懂的程式碼變得醜陋,還會加重自己工作負擔。

3.我新增了什麼?

當你開啟Map的API你會發現,新增指定值得方法put(K key, V value)的返回值是被新增的V。 也就是說,return另一種作用就是,當你建立一個向類中新增某種目標的方法,並且想要告訴呼叫方法的部分新增了什麼的時候,可以利用return返回一個被新增了的目標。反之,如果新增失敗,返回一個null,呼叫方法的部分就很容易知道操作失敗還是成功。 當然,你也可以return一個布林型來告訴呼叫方操作結果,這一點可以參考List中add類的使用方法。


轉貼請註明出處:http://blog.csdn.net/froole

 

相關文章