在 scala 中,任何表達式、語句都有返回值;而比較特殊的有如下幾種狀況:
{ val r = r * 2; val a = 1 + 3;}
,那麼這個塊表達式的返回值就是 int,由於 a 的類型是 int條件表達式語句
在 scala 中 if/else 的表達式是有返回值的,這個值就是跟在 if/else 以後的表達式的值,例如:if ( x > 0 ) 1 else -1
,上述表達式的返回值是 1或者-1,同時這個值也是 if/else 的返回值,你能夠將這個返回值賦給一個變量打印輸出一下 val i = (if ( x > 0 ) 1 else -1)
,能夠看到返回值確實是 int 如圖所示:java
賦值語句表達式
在 scala 中,賦值動做自己的返回值是 Unit 類型的,unit 類型的返回值並非空,而是它返回的是一個空的值,就至關於java 系列語言中的 null 和 "" 的區別shell
【注意】,因爲賦值語句的返回值是 Unit,所以若是某個塊語句是以賦值語句做爲最後一條執行語句的話,那麼這個塊語句的返回值就變成了 Unit;同時因爲賦值語句返回值的特殊性,所以你不能像 java 系列語言那樣寫:`x = y = 1 `,這樣是錯誤的,由於 y = 1 的返回值是 Unit,至關於你將一個 Unit 的空值賦值給一個變量,這樣作是沒有意義的,固然了,若是你非要這樣作,那我告訴你這樣作也是正確的,並不會報錯,只是它沒有意義,不信看下圖:
若是要打印一個值,咱們用 print 或 println 函數,可是 println 會在打印的內容後自動追加一個換行符,相似於 shell 編程中的echo sss
和echo -n sss
的區別(學習知識注意聯想,舉一反三),若是要記憶也簡單,println 後面帶有 ln ,那就是表明換行了
另外還有一個帶有格式化的輸出 printf 函數,就像這樣使用:關於輸入的內容,我這裏不作過多介紹,只給出兩個例子,具體請參考官網標準輸入 (當前scala版本:2.12.8)
編程