gop
gop copied to clipboard
UnitLiteral (Constant with Unit)
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`.
number with unit: scanner/parser/format #2007
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
Convert
const unit Distance (
mm = 1
cm = 10
dm = 100
m = 1000
)
into
const Gopu_Distance = "mm=1,cm=10,dm=100,m=1000"