Time Constants
Constants สำหรับ time durations และ timestamps ใน Rust มี Duration constants, UNIX_EPOCH reference point และ patterns สำหรับ timeout handling ที่เป็นพื้นฐานสำคัญของ systems programming
Duration Constants
Section titled “Duration Constants”Duration struct มี associated constants สำหรับ common values โดย ZERO แทน 0 nanoseconds และ MAX แทนค่าสูงสุดที่เป็นไปได้ (~584 years)
Duration Associated Constants
Section titled “Duration Associated Constants”| Constant | Value | Description |
|---|---|---|
Duration::ZERO | 0 nanoseconds | Duration เป็นศูนย์ |
Duration::MAX | ~584 years | ค่าสูงสุดที่ Duration เก็บได้ |
Duration::SECOND | 1 second | (nightly) 1 วินาที |
Duration::MILLISECOND | 1 ms | (nightly) 1 มิลลิวินาที |
Duration::MICROSECOND | 1 μs | (nightly) 1 ไมโครวินาที |
Duration::NANOSECOND | 1 ns | (nightly) 1 นาโนวินาที |
Duration Basics
Section titled “Duration Basics”use std::time::Duration;
fn main() { // Predefined constants println!("=== Duration Constants ==="); println!("ZERO: {:?}", Duration::ZERO); println!("MAX: {:?}", Duration::MAX);
// Compare ZERO let empty = Duration::from_secs(0); println!("\nZERO == from_secs(0): {}", Duration::ZERO == empty);
// MAX is about 584 years let max_secs = Duration::MAX.as_secs(); let years = max_secs / (365 * 24 * 60 * 60); println!("MAX is approximately {} years", years);
// Create common durations using const functions println!("\n=== Common Durations ==="); println!("1 second: {:?}", Duration::from_secs(1)); println!("1 millisecond: {:?}", Duration::from_millis(1)); println!("1 microsecond: {:?}", Duration::from_micros(1)); println!("1 nanosecond: {:?}", Duration::from_nanos(1));
// Useful const patterns - can be used in const contexts const ONE_SECOND: Duration = Duration::from_secs(1); const TEN_MILLIS: Duration = Duration::from_millis(10); const TIMEOUT: Duration = Duration::from_secs(30); const MINUTE: Duration = Duration::from_secs(60); const HOUR: Duration = Duration::from_secs(3600);
println!("\n=== Const Durations ==="); println!("ONE_SECOND: {:?}", ONE_SECOND); println!("TEN_MILLIS: {:?}", TEN_MILLIS); println!("TIMEOUT: {:?}", TIMEOUT); println!("MINUTE: {:?}", MINUTE); println!("HOUR: {:?}", HOUR);
// Internal representation - seconds + nanoseconds let d = Duration::new(5, 500_000_000); // 5.5 seconds println!("\n=== Components ==="); println!("Duration::new(5, 500_000_000):"); println!(" Display: {:?}", d); println!(" as_secs: {}", d.as_secs()); // Full seconds only println!(" subsec_nanos: {}", d.subsec_nanos()); // Fractional part println!(" as_secs_f64: {}", d.as_secs_f64()); // As float}เข้าสู่ระบบเพื่อดูเนื้อหาเต็ม
ยืนยันตัวตนด้วยบัญชี Google เพื่อปลดล็อกบทความทั้งหมด
Login with Google