gop icon indicating copy to clipboard operation
gop copied to clipboard

UnitLiteral (Constant with Unit)

Open xushiwei opened this issue 1 year ago • 3 comments

Proposal

const unit Distance (
    mm = 1
    cm = 10
    dm = 100
    m  = 1000
)
step 1m  // move forward 1 meter

const unit time.Duration (
    ns = time.Nanosecond
    us = time.Microsecond
    µs = time.Microsecond
    ms = time.Millisecond
    s = time.Second
    m = time.Minute
    h = time.Hour
    d = 24 * time.Hour
)
wait 1s  // wait 1 second
wait 1m  // wait 1 minute. Note that it does not conflict with `step 1m`.

xushiwei avatar Oct 30 '24 03:10 xushiwei

number with unit: scanner/parser/format #2007

xushiwei avatar Nov 07 '24 04:11 xushiwei

cl: compileNumberUnitLit - https://github.com/goplus/gop/pull/2008 now support unit of time.Duration. eg.

wait 0.5s
wait 5µs

It is equivalent to

wait 0.5 * time.Second
wait 5 * time.Microsecond

xushiwei avatar Nov 07 '24 08:11 xushiwei

Convert

const unit Distance (
    mm = 1
    cm = 10
    dm = 100
    m  = 1000
)

into

const Gopu_Distance = "mm=1,cm=10,dm=100,m=1000"

xushiwei avatar Nov 07 '24 10:11 xushiwei