Готовый перевод Futures and Promises / Фьючи и Промисы: Utilities
Для того чтобы упростить операции со временем в конкурентных приложениях scala.concurrent предоставляет абстракцию Duration. Duration это не еще одна основная абстракция как может показаться сначала. Это значит что она может быть использована с конкурентными библиотеками и расположена она в пакете scala.concurrent.
Duration - это базовый класс, представляющий отрезок времени. Он может быть определёным или бесконечным. Определенный представлен классом FiniteDuration который собран из длины типа Long и java.util.concurrent.TimeUnit. Неопределенная длительность также является потомком Duration, и существует только в двух экземплярах: Duration.Inf и Duration.MinusInf. Библиотека также предоставляет несколько подклассов Duration для неявных преобразований которые не рекомендуется использовать.
Абстрактный класс Duration содержит методы которые позволяют:
- преобразовывать различные единицы изменений времени (toNanos, toMicros, toMillis, toSeconds, toMinutes, toHours, toDays and toUnit(unit: TimeUnit))
- сравнение ( <, <=, > and >= )
- арифметические операции (+, -, *, / и unary_-)
- выявление минимального и максимального значения. (min, max)
- проверка на определенность (isFinite)
Duration может быть создан одним из следующих способов:
1. Неявно из типов Int или Long. Например, val d = 100 millis.
2. Передавая отрезок типа Long и java.util.concurrent.TimeUnit. Например, val d = Duration(100, MILLISECONDS).
3. Передавая строку которая представляет собой временной промежуток. Например, val d = Duration("1.2 µs").
Duration также предоставляет методы unapply, а это дает возможность их использования при сопоставлении с образцом.
Примеры:
import scala.concurrent.duration._
import java.util.concurrent.TimeUnit._
// конкретизация
val d1 = Duration(100, MILLISECONDS) // from Long and TimeUnit
val d2 = Duration(100, "millis") // from Long and String
val d3 = 100 millis // implicitly from Long, Int or Double
val d4 = Duration("1.2 µs") // from String
// сопоставление с образцом
val Duration(length, unit) = 5 millis
Внимание! Этот перевод, возможно, ещё не готов.
Его статус: идёт перевод
Переведено на Нотабеноиде
http://notabenoid.org/book/44566/176060
Переводчики: 2heoh
Настройки
Готово:
