В данной статье мы рассмотрим экстракторы в языке программирования 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/.