iT邦幫忙

2022 iThome 鐵人賽

DAY 6
0

今天來介紹Scala的內建控制結構(Build-in control structures)

  • if expressions
  • while expressions
  • for expressions
  • try expressions
  • match expressions

首先來談if運算式

"if expressions always return a result"
舉個例子:

val max = if (x > y) x else y

因為if運算式是一個能有回傳值的運算式,所以我們可以寫成上面那樣。
這樣的寫法也可以讓我們盡量使用val而不是var
(Scala鼓勵我們使用val而不是var)

另外,如果要println(max),我們可以寫成這樣:

println(if (x > y) x else y)

While迴圈

一般來說,不建議使用while(while迴圈和var常常會一起出現),可以改用遞迴。
因為while迴圈沒有回傳值,如果要對程式產生任何效果會需要靠更新var變數來達成。

Scala的while迴圈跟其他語言差不多,這邊就不舉例了~

for運算式

來介紹幾個Scala的for運算式的常見用法:
遍歷集合

for ( i <- 1 to 5) print(i + " ")

輸出結果:1 2 3 4 5
如果輸出不要包含上界,可以使用until

for ( i <- 1 until 5) print(i + " ")

輸出結果:1 2 3 4

過濾
有時不需要遍歷所有集合,這時候可以給for迴圈加一個過濾器:if
舉例,當只要列出當前目錄中那些結尾有".scala"的文件時:

val filesHere = (new java.io.File(".")).listFiles
for ( files <- filesHere if file.getName.endsWith(".scala")) 
println(file)

如果需要更多過濾器就直接添加if子句
例如:

for ( file <- filesHere
      if file.isFile
      if file.getName.endsWith(".scala")
    ) println(file)

內建結構今天先講到這邊 明天繼續講!


上一篇
[Day 05]Scala入門 Part3
下一篇
[Day 07]Scala內建結構 Part 2
系列文
連續30天 初學者介紹Scala語言30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言