У меня есть следующий код:Как получить элемент в списке, который соответствует определенному условию?
package models
import java.util.concurrent.atomic.AtomicInteger
import scala.collection.mutable.ArrayBuffer
case class Task(id: Int, label: String)
object Task {
private val buffer = new ArrayBuffer[Task]
private val incrementer = new AtomicInteger()
def all(): List[Task] = buffer.toList
def create(label: String): Int = {
val newId = incrementer.incrementAndGet()
buffer += new Task(newId, label)
newId
}
def delete(id: Int): Boolean = {
// TODO : add code
}
}
В методе delete
мне нужно найти Task
, который имеет id
равный параметру id
и если кто-то обнаружил, что мне нужно, чтобы удалить его из коллекции и возвращает истину от метод. В противном случае (если ни один не найден) я должен просто вернуть false.
Я знаю, как это сделать в императивном языке, как C# или Java, но Scala пни меня ..
PS: Код используется исключительно для понимания языка и платформы, она сосет слишком много, чтобы быть толкается в производство. Не волнуйся.
выглядит действительно хорошо! (как в функционально-ориентированном, если можно так сказать) –
В конце концов я обнаружил 'find', но я не знал о' map' и что его можно использовать так :) –
Один вопрос, если я могу: делает ли выражение 'buffer - = _', который является аргументом' map', возвращает удаленный элемент? –