xml からいくつかの製品を製品で解析するコードがあります。一致する部分が 1 つあり、結果を製品valに入れます。
val products =
for (event <- reader) {
event match {
case EvElemStart(_, "product", meta, _) =>
product = new Product()
product.title = meta("title").toString
product.description = meta("description").toString
case EvElemEnd(_, "product") =>
yield product // <--
case _ =>
}
}
yieldの後に "case" が必要です。なんで?
そして、それはどのようにscalaの方法で行うことができますか?
別の試み:
val products =
for (event <- reader) {
var title = "";
var description = "";
event match {
case EvElemStart(_, "product", meta, _) =>
title = meta("title").toString
description = meta("title").toString
case EvElemEnd(_, "product") =>
case _ =>
}
} yield new Product("", ""); // <---
コンパイラは、 yieldの直前に「}」が必要であると言います