Мне нужно возвратить один объект класса Book case из списка Books путем поиска только одного из его параметров. У меня это работает с foreach, но мне интересно, смогу ли я сделать это более элегантно.
У меня было то же самое с другими параметрами ((частичный) поиск по автору и названию), которые я использовал фильтр, чтобы возвращать новые списки со всеми соответствующими книгами, но с ISBN он мог возвращать только один объект и надеялся, что смогу сделать это а не список 1.
Я использовал foreach для циклического перебора всего списка и обновления переменной на нужную Книгу, но это выглядит грязно.
Класс выглядит так:
case class Book(title: String, author: String, ISBN: String, reference: Boolean = false)
Вот что у меня есть:
def searchISBN(isbnSearch: String): Book = {
var result :Book = null
books.foreach {
book => if(book.ISBN == isbnSearch) { result = book }
}
result
}
Попытки сделать что-то вроде этого:
def searchISBN(isbnSearch: String): Book = {
val result = books.find(_.isbnSearch)
result
}