Spec-Zone.ru › Scala 3.2

Объект Duration.Duration

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

объект Duration

Суперобекти
класс Object
тракт Matchable
класс Any
Тип самого объекта
Duration.type

Классы

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

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

Исходный код
абстрактный запечатанный класс Infinite extends Duration

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

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

Создаёт 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

Создаёт 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

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

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

Семантика полученных объектов Duration соответствует семантике их двойных аналогов относительно арифметических операций.

Исключения
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.2.0/scala/concurrent/duration/Duration$.html

Spec-Zone.ru

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