Scala中如何中斷循環(huán)詳解
目錄 1.使用拋出和捕獲異常的方法跳出當前循環(huán)2.使用Scala中的Breaks類的break方法3.測試4.簡化 使用 ._ 來引入全部內容 方便調用
在scala中無法直接使用break關鍵字跳出當前循環(huán),但有其他方法
1.使用拋出和捕獲異常的方法跳出當前循環(huán)
def main(args: Array[String]): Unit = { try { for (i <- 0 until 5) { if (i == 3) throw new RuntimeException println(i) } } catch { case e: Exception => } println("這是循環(huán)外的代碼")
2.使用Scala中的Breaks類的break方法
首先引入Breaks類,調用該類下的breakable方法(表示接下來的代碼是可中斷的),在需要中斷的地方調用該類下的break方法即可跳出當前循環(huán)
import scala.util.control.Breaks object Test_Break { def main(args: Array[String]): Unit = { try { for (i <- 0 until 5) { if (i == 3) throw new RuntimeException println(i) } } catch { case e: Exception => } println("這是循環(huán)外的代碼") //使用Scala中的Breaks類中的break方法 Breaks.breakable( for (i <- 0 until 5) { if (i == 3) { Breaks.break() } println(i) } ) } }
這里解釋下,Breaks類下的breakable方法其實就是將 try catch 進行了包裝,而該類下的break方法其實就是拋出了一個 breakException (返回類型Nothing),也就是說這里同樣是使用拋出異常的方法實現(xiàn)了跳出循環(huán)的這樣一個功能
3.測試
可見都是當 i == 3 時中斷了循環(huán)
4.簡化
使用 ._ 來引入全部內容 方便調用
我們可以使用 import scala.util.control.Breaks._
(其實就是加上了 ._ 類似于Java中的 .* )引入Break類中的所有屬性和方法
這樣接下來調用其中的方法就不用再 . 了
package chapter02 import scala.util.control.Breaks._ object Test_Break { def main(args: Array[String]): Unit = { try { for (i <- 0 until 5) { if (i == 3) throw new RuntimeException println(i) } } catch { case e: Exception => } println("這是循環(huán)外的代碼") //使用Scala中的Breaks類中的break方法 breakable( for (i <- 0 until 5) { if (i == 3) { break() } println(i) } ) } }
到此這篇關于Scala中如何中斷循環(huán)詳解的文章就介紹到這了,更多相關Scala中斷循環(huán)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Springboot實現(xiàn)定時任務的4種方式舉例詳解
在我們開發(fā)項目過程中經常需要定時任務來幫助我們來做一些內容,下面這篇文章主要給大家介紹了關于Springboot實現(xiàn)定時任務的4種方式,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-01-01詳解Java并發(fā)包中線程池ThreadPoolExecutor
ThreadPoolExecutor是Java語言對于線程池的實現(xiàn)。線程池技術使線程在使用完畢后不回收而是重復利用。如果線程能夠復用,那么我們就可以使用固定數(shù)量的線程來解決并發(fā)問題,這樣一來不僅節(jié)約了系統(tǒng)資源,而且也會減少線程上下文切換的開銷2021-06-06ExecutorService實現(xiàn)獲取線程返回值
這篇文章主要介紹了ExecutorService實現(xiàn)獲取線程返回值,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-08-08