Spec-Zone.ru › Scala 3.1

Объект scala.concurrent.duration.Duration

Класс-компаньон • Исходный код

объект Duration

Надтипы
класс Object
тракт Matchable
класс Any
Тип "self"
Duration.type

Классы

Исходный код
объект DurationIsOrdered extends Ordering[Duration]

Естественный порядок сортировки для продолжительности соответствует естественному порядку для Double, включая бесконечные значения.

Исходный код
абстрактный пломбированный класс Infinite extends Duration

Конкретные методы

Исходный код
def apply(length: Double, unit: TimeUnit): Duration

Создать продолжительность из заданной длины и единицы измерения. Обратите внимание, что точность наносекунд может быть потеряна, если

- единица измерения — NANOSECONDS - и длина имеет абсолютное значение больше, чем 2^53

Бесконечные значения (и NaN) преобразуются в Duration.Inf, Duration.MinusInf и Duration.Undefined соответственно.

Исключения
IllegalArgumentException

если длина была конечной, но полученная продолжительность не может быть выражена как FiniteDuration

Исходный код
def apply(length: Long, unit: TimeUnit): FiniteDuration

Создать конечную продолжительность из заданной длины и единицы измерения времени. Единица измерения сохраняется в вычислениях как можно дольше, чтобы ее можно было получить позже.

Исходный код
def apply(length: Long, unit: String): FiniteDuration

Создать конечную продолжительность из заданной длины и единицы измерения времени, где последняя ищется в списке строковых представлений. Допустимые варианты:

d, day, h, hr, hour, m, min, minute, s, sec, second, ms, milli, millisecond, µs, micro, microsecond, ns, nano, nanosecond и их формы множественного числа (для каждой, кроме первой указанной формы каждой единицы, т. е. нет "ds", но "days").

Исходный код
def apply(s: String): Duration

Разбор строки в Duration. Формат "<length><unit>", где пробелы допускаются перед, между и после частей. Бесконечности обозначаются "Inf", "PlusInf", "+Inf", "Duration.Inf" и "-Inf", "MinusInf" или "Duration.MinusInf". Неопределенное значение обозначается "Duration.Undefined".

Исключения
NumberFormatException

если формат не поддаётся разбору

Исходный код
def create(length: Long, unit: TimeUnit): FiniteDuration

Создать конечную продолжительность из заданной длины и единицы измерения времени. Единица измерения сохраняется в вычислениях как можно дольше, чтобы ее можно было получить позже.

Исходный код
def create(length: Double, unit: TimeUnit): Duration

Создать продолжительность из заданной длины и единицы измерения. Обратите внимание, что точность наносекунд может быть потеряна, если

- единица измерения — NANOSECONDS - и длина имеет абсолютное значение больше, чем 2^53

Бесконечные значения (и NaN) преобразуются в Duration.Inf, Duration.MinusInf и Duration.Undefined соответственно.

Исключения
IllegalArgumentException

если длина была конечной, но полученная продолжительность не может быть выражена как FiniteDuration

Исходный код
def create(length: Long, unit: String): FiniteDuration

Создать конечную продолжительность из заданной длины и единицы измерения времени, где последняя ищется в списке строковых представлений. Допустимые варианты:

d, day, h, hour, min, minute, s, sec, second, ms, milli, millisecond, µs, micro, microsecond, ns, nano, nanosecond и их формы множественного числа (для каждой, кроме первой указанной формы каждой единицы, т. е. нет "ds", но "days").

Исходный код
def create(s: String): Duration

Разбор строки в Duration. Формат "<length><unit>", где пробелы допускаются перед, между и после частей. Бесконечности обозначаются "Inf", "PlusInf", "+Inf" и "-Inf" или "MinusInf".

Исключения
NumberFormatException

если формат не поддаётся разбору

Исходный код
def fromNanos(nanos: Double): Duration

Создать возможно бесконечную или неопределённую продолжительность из заданного числа наносекунд.

- Double.PositiveInfinity отображается на Duration.Inf - Double.NegativeInfinity отображается на Duration.MinusInf - Double.NaN отображается на Duration.Undefined - -0d отображается на Duration.Zero (точно так же, как 0d)

Семантика результирующих объектов Duration соответствует семантике их Double-аналогов по отношению к операциям над ними.

Исключения
IllegalArgumentException

если длина была конечной, но полученная продолжительность не может быть выражена как FiniteDuration

Исходный код
def fromNanos(nanos: Long): FiniteDuration

Создать конечную продолжительность из заданного числа наносекунд. Результат будет иметь наиболее грубую единицу измерения времени, которая может точно выразить эту продолжительность.

Исключения
IllegalArgumentException

для Long.MinValue, так как это приведёт к несогласованному поведению впоследствии (не может быть отрицательным)

Исходный код
def unapply(s: String): Option[(Long, TimeUnit)]

Извлечь длину и единицу измерения времени из строки, где формат должен соответствовать описанию для apply(String). Экстрактор не будет соответствовать некорректным строкам или бесконечным продолжительностям.

Исходный код
def unapply(d: Duration): Option[(Long, TimeUnit)]

Извлечь длину и единицу измерения времени из продолжительности, если она конечна.

Конкретные поля

Исходный код
val Inf: Infinite

Бесконечная продолжительность: больше, чем любая другая (кроме Undefined) и не равна никакой другой, кроме себя. Это значение тесно соответствует Double.PositiveInfinity, соответствуя его семантике в арифметических операциях.

Source
val MinusInf: Infinite

Бесконечная продолжительность: меньше любой другой и не равна никакой другой, кроме себя. Это значение тесно соответствует Double.NegativeInfinity, соответсвуя его семантике в арифметических операциях.

Source
val Undefined: Infinite

Значение Undefined тесно соответствует Double.NaN:

- оно является результатом других некорректных операций - оно не равно самому себе (согласно equals()) - оно больше любого другого Duration, кроме себя (для которого compare возвращает 0)

Особые семантики сравнения отражают семантику Double.NaN.

Используйте eq при проверке входных данных метода на это значение.

Source
val Zero: FiniteDuration

Предварительно построенное значение 0.days.

© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.1.1/scala/concurrent/duration/Duration$.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API