РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
451 of 1245 menu

Метод checked_add

Метод checked_add класса Instant выполняет сложение текущего момента времени с заданной длительностью и возвращает результат в виде Option<Instant>. Если при сложении происходит переполнение (выход за пределы представления Instant), метод возвращает None, в противном случае - Some с новым значением момента времени. Параметром метод принимает длительность типа Duration, которую нужно прибавить к текущему моменту.

Синтаксис

instant.checked_add(duration)

Пример

Давайте создадим момент времени и прибавим к нему длительность в 5 секунд:

use std::time::{Duration, Instant}; fn main() { let start = Instant::now(); let duration = Duration::from_secs(5); let res = start.checked_add(duration); println!("{:?}", res); }

Результат выполнения кода:

Some(Instant { tv_sec: 1234567, tv_nsec: 890123456 })

Пример

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

use std::time::{Duration, Instant}; fn main() { let start = Instant::now(); let big_duration = Duration::from_secs(u64::MAX); let res = start.checked_add(big_duration); println!("{:?}", res); }

Результат выполнения кода:

None

Пример

Давайте обработаем результат с помощью match, чтобы безопасно получить новое значение:

use std::time::{Duration, Instant}; fn main() { let start = Instant::now(); let duration = Duration::from_secs(60); match start.checked_add(duration) { Some(new_instant) => println!("New instant: {:?}", new_instant), None => println!("Overflow occurred"), } }

Результат выполнения кода:

New instant: Instant { tv_sec: 1234567, tv_nsec: 890123456 }

Смотрите также

  • класс Instant,
    который представляет момент времени
  • метод checked_sub,
    который выполняет вычитание длительности с проверкой переполнения
  • метод checked_duration_since,
    который возвращает разницу между моментами времени с проверкой
  • метод now,
    который возвращает текущий момент времени
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить