[英]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:我不知道這個帖子是否回答了我的問題。 如果可以,怎么辦?
您可以匹配數組,並為匹配的案例添加條件,如下所示:
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.