Clock
๐ก ใ็ฅใใ: ใใฎใใญใฅใกใณใใฏAIใซใใฃใฆ็ฟป่จณใใใฆใใพใใ่กจ็พใซ้ๅๆใใใๅ ดๅใฏใๅๆ๏ผ่ฑ่ช๏ผใๅ็ งใใใใ็ฟป่จณใซใๅๅใใ ใใใ
Flix ใฏใ็พๅจใฎๅฎๆ้(wall-clock time)ใๅใๅใใใใใใฎใฉใคใใฉใชใจใใงใฏใใจใใฆ Clock ใๆไพใใฆใใพใใClock ใจใใงใฏใใฏใใใฉใซใใใณใใฉใๆใคใใใmain ใฎไธญใงๆ็คบ็ใซ runWithIO ใๅผใณๅบใๅฟ
่ฆใฏใใใพใใใไธญๅฟใจใชใใขใธใฅใผใซใฏ Time.Clock ใงใใ
Clock ใจใใงใฏใ
Clock ใจใใงใฏใใฏใใจใใใฏ(epoch)ใใใฎ็ต้ๆ้ใๆๅฎใใๅไฝใง่ฟใใๅไธใฎๆไฝใๆใกใพใใ
pub eff Clock {
/// ใจใใใฏใใใฎ็ต้ๆ้ใใๆๅฎใใใๆ้ๅไฝ `u` ใง่ฟใใ
def currentTime(u: TimeUnit): Int64
}
็ตๆใฎ็ฒๅบฆใฏ TimeUnit enum ใซใใฃใฆๆฑบใพใใพใใ
pub enum TimeUnit with Eq, ToString {
case Days,
case Hours,
case Microseconds,
case Milliseconds,
case Minutes,
case Nanoseconds,
case Seconds
}
็พๅจๆๅปใฎๅๅพ
Clock ใฎใใฃใจใๅ็ดใชไฝฟใๆนใฏใ็พๅจๆๅปใ่ชญใฟๅใฃใฆ่กจ็คบใใใใจใงใใ
use Time.Clock
use Time.TimeUnit
def main(): Unit \ { Clock, IO } =
let timestamp = Clock.currentTime(TimeUnit.Milliseconds);
println("${timestamp} ms since the epoch")
Clock ใฏใใใฉใซใใใณใใฉใๆใคใใใใใฎใจใใงใฏใใฏ่ชๅ็ใซๅฆ็ใใใพใใ
now ้ขๆฐ
Clock.now ้ขๆฐใฏใClock.currentTime(TimeUnit.Milliseconds) ใฎ็ญ็ธฎๅฝขใงใใ
use Time.Clock
def main(): Unit \ { Clock, IO } =
let before = Clock.now();
// ... ไฝใใใฎๅฆ็ใ่กใ ...
let after = Clock.now();
println("Elapsed: ${after - before} ms")