簡體   English   中英

scala:如何通過數組長度匹配大小寫

[英]scala : how to match a case by array length

一個新手。

我們有一些(可能很難看)的代碼:

val rowSplit = line.split(",", -1)

rowSplit match {
  case array: Array[String] =>
  {
     if (array.length < 18) {
     //do sth

     }
     else if(array.length < 26){

     // smth else
     }
  }

我想知道我們是否可以直接在case語句中匹配各個長度的數組。

可能嗎?

PS:我不知道這個帖子是否回答了我的問題。 如果可以,怎么辦?

在Scala中,如何使用模式匹配來匹配具有指定長度的列表?

您可以匹配數組,並為匹配的案例添加條件,如下所示:

rowSplit match {  
  case array:Array[String] if array.length < 18 => //do sth
  case array:Array[String] if array.length > 26 => ...
}

或者簡單地:

rowSplit match {  
  case a if a.length < 18 => //do sth
  case a if a.length > 26 => ...
}

請注意,這里我們可以使用變量模式 a代替a:Array[String]類的類型化模式,因為我們不需要進一步對rowSplit進行類型匹配,我們知道rowSplit的類型為Array[String] ,並且具有字段length

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM