- Scala編程(第5版)
- (德)馬丁·奧德斯基等
- 721字
- 2022-05-06 15:51:48
第7章
內建的控制結構
Scala只有為數不多的幾個內建的控制結構。這些控制結構包括if、while、for、try、match和函數調用。Scala的內建控制結構之所以這么少,是因為它從一開始就引入了函數字面量。不同于在基礎語法中不斷地添加高級控制結構的這種做法,Scala將內建的控制結構歸口到類庫中(第9章將會展示具體做法)。本章主要介紹的就是這些內建的控制結構。
你會注意到一點,那就是Scala所有的控制結構都返回某種值作為結果。這是函數式編程語言采取的策略,程序被認為是用來計算出某個值的,因此程序的各個組成部分也應該計算出某個值。你也可以將這種方式看作在指令式編程語言中已經存在的那種趨勢的邏輯終局。在指令式編程語言中,函數調用可以返回某個值,即使被調用的函數在調用過程中更新了某個傳入的輸出變量,這套機制也是能正常運作的。除此之外,指令式編程語言通常都提供了三元操作符(如C、C++和Java的?:),其行為與if語句幾乎沒有差別,只是會返回某個值。Scala也采納了這樣的三元操作模型,不過把它稱作if表達式。換句話說,Scala的if表達式可以有返回值。更進一步地,Scala讓for、try和match也都有了返回值。
程序員可以用這些返回值來簡化他們的代碼,就像他們能用函數的返回值來簡化他們的代碼一樣。缺少了這個機制,程序員必須創建臨時變量,并且這些臨時變量僅僅用來保持那些在控制結構內部計算出來的結果。去掉這些臨時變量不僅讓代碼變得更簡單,同時避免了很多由于在某個分支設置了變量而在另一個分支中忘記設置所帶來的bug。
總體而言,Scala這些基礎的控制結構雖然看上去很簡潔,卻提供了本質上與指令式編程語言相同的功能。不僅如此,這些控制結構通過確保每段代碼都有返回值可以使你的代碼變得更短。為了向你展示這一點,我們將對Scala的每一個控制結構進行詳細的講解。
- 小程序實戰視頻課:微信小程序開發全案精講
- Docker進階與實戰
- 單片機C語言程序設計實訓100例:基于STC8051+Proteus仿真與實戰
- WSO2 Developer’s Guide
- STM32F0實戰:基于HAL庫開發
- 鋒利的SQL(第2版)
- Python機器學習:手把手教你掌握150個精彩案例(微課視頻版)
- JavaScript動態網頁開發詳解
- C語言程序設計
- Salesforce Reporting and Dashboards
- ASP.NET開發與應用教程
- Bootstrap 4 Cookbook
- C語言程序設計
- Python圖形化編程(微課版)
- Julia 1.0 Programming Complete Reference Guide