Руководство по Scala. Экстракторы.

В данной статье мы рассмотрим экстракторы в языке программирования Scala.

Экстрактор – это объект, который имеет метод, позволяющий исключить одного из своих членов.

Для понимания того, как это работает на практике, рассмотрим простой пример:


package net.proselyte.scalatutorial.extractors

/**
  * Simple Scala class that demonstrates Extractor in Scala.
  *
  * @author Eugene Suleimanov
  */

object ExtractorDemo {
  def main(args: Array[String]) {
    println(apply("Eugene Suleimanov", "Java/Scala Developer"));
    println(unapply("Ivan Ivanov: C++ Developer"));
    println(unapply("Kolya Nikolaev - PHP Developer"));
  }

  def apply(name: String, specialty: String) = {
    name + ": " + specialty
  }

  def unapply(str: String): Option[(String, String)] = {
    val stringParts = str split ":"

    if (stringParts.length == 2) {
      Some(stringParts(0), stringParts(1))
    } else {
      None
    }
  }
}

Результатом работы данной программы будет следующий вывод в консоль:


Eugene Suleimanov: Java/Scala Developer
Some((Ivan Ivanov, C++ Developer))
None

В данном случае мы принимаем имя разработчика и его специальность, которые разделены символом “:”.
Если строка содержит данный символ – мы разделяем строку на две части и выделяем имя и специальность.
Если не содержит – мы исключаем данную строку.

На этом мы заканчиваем изучение экстракторов в Scala.
Также, данная статья является заключительно в цикле статей, посвященных данному языку программирования.
Более подробно с языком Scala вы можете ознакомиться на сайте http://scala-lang.org/.