Scala фильтр на два условия

<?php

if(isset($_POST['nameCheckbox'])){
    $_SESSION['fr_nameCheckbox'] = true;
}

?>

<input type="checkbox" name="nameCheckbox" 

<?php 

if(isset($_SESSION['fr_nameCheckbox'])){
    echo 'checked'; 
    unset($_SESSION['fr_nameCheckbox']);
} 

?>
41
задан richsoni 20 June 2012 в 20:23
поделиться

2 ответа

Использование несколько менее лаконичного синтаксиса лямбды:

mystuff = mystuff.filter(x => (x.isX && x.name == "xyz"))

Подробнее о синтаксисе анонимной функции Scala можно узнать здесь .

66
ответ дан Alex Wilson 20 June 2012 в 20:23
поделиться

Если вам нужно часто фильтровать по нескольким предикатам, вы можете определить способ их объединения:

case class And[A]( p1: A=>Boolean, p2: A=>Boolean ) extends (A=>Boolean) {
  def apply( a: A ) = p1(a) && p2(a)
}

Вот как его использовать, чтобы оставить нечетные числа больше 10:

scala> (0 until 20) filter And( _ > 10, _ % 2 == 1 )
res3: scala.collection.immutable.IndexedSeq[Int] = Vector(11, 13, 15, 17, 19)

Легко написать Or и Not комбинаторы одинаковым образом.

6
ответ дан paradigmatic 20 June 2012 в 20:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: