Если вы просто тестируете пустое / не пустое, то выбирать не из чего, и if
, возможно, более значимо.match
вступает в игру, когда есть несколько опций:
a match {
case Nil => 0
case hd::Nil => 1
case hd::tl => 2
}
Часто бывает так, что вы можете избежать или хотя бы отложить этот тест, используя соответствующие методы.Например, take(1)
работает с пустым списком, тогда как head
завершится ошибкой.И headOption.map(...)
может использоваться для безопасной обработки первого элемента, если он есть.