學習 Scala 并在流方面遇到一些麻煩。我正在嘗試根據它包含“%”的事實過濾“元素”的集合(來自 scala-parser 庫,所有 Soup 物件)并提取值。
override def extractRoi(line: Element): Double = {
line.asInstanceOf[JsoupElement].underlying
.select("td")
.stream()
.map(e => e.text().toString)
.filter(e => e.contains("%"))
.findFirst()
.orElse("")
.replace("%", "").toDouble
}
當我通過執行“e.text()”進行映射時,我應該有一個 Stream[String],但它是一個 Stream[_$2],我不明白為什么。所以代碼在 orElse 時不會。
我需要做什么轉換才能得到 Stream[String] ?
uj5u.com熱心網友回復:
在 Scala 中使用 Java 流似乎有些奇怪。在我上面的代碼中,它無法推斷出正確的型別。所以這就是我修復它的方法:
override def extractRoi(line: Element): Double = {
line.select("td")
.iterator()
.asScala
.map(e => e.text().toString)
.filter(e => e.contains("%"))
.findFirst()
.orElse("")
.replace("%", "").toDouble
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/474434.html
標籤:斯卡拉
