0

リストのリストで要素を見つけようとしています。特に、特定の都市が国にある場合。

states:List[State]と都市:があります。List[City]これは、国が として表されることを意味しList[List[City]]ます。

このコードを書きましたが、問題に直面しているようです。これはスニペットです:

case class city (
  name: String, 
  CodePostal: Double, 
  visit: Boolean
)


def belongToCountry(p: city): Boolean =
  countries.flatten.foreach {
    case p => return true 
    case _ => return false
  }

def belongToCountry(p: city): Boolean =
  countries.foreach(s => s.city.contains(p))
4

2 に答える 2

0

式を使用したもう少し冗長なソリューションは次のforようになります

def belongToCountry(city: city): Boolean = {

  val checkIterator: Iterator[Boolean] = for {
    country <- countries.toIterator
    cityName <- country
    if (city.name == cityName)
  } yield true

  checkIterator.hasNext match {
    case true => checkIterator.next()
    case false => false
  }
}
于 2016-09-02T13:06:27.960 に答える