2

私はこのようなコードを持っています

def filter(t: String) : Boolean = {
    var found = false;
    for(s <- listofStrings) {
      if ( t.contains(s)) { found = true}
    }
    found
  }

コンパイラは、可変変数を使用するのは適切ではないという警告を出します。これを回避するにはどうすればよいですか?

免責事項:割り当てでこのコードのバリアントを使用し、送信が完了しました。私は正しいことは何であるか知りたいです

4

2 に答える 2

8

あなたができること:

def filter(t:String) = listofStrings.exists(t.contains(_))
于 2012-10-12T07:27:13.070 に答える
3

できるだけ少ない組み込みコレクション関数を使用する場合は、再帰を使用します。

def filter(t: String, xs: List[String]): Boolean = xs match {
  case Nil => false
  case x :: ys => t.contains(x) || filter(t, ys)
}

println(filter("Brave New World", List("few", "screw", "ew"))) // true

println(filter("Fahrenheit 451", List("20", "30", "80"))) // false
于 2012-10-12T08:01:53.173 に答える