0

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の直前に「}」が必要であると言います

4

1 に答える 1