求助gopl练习 3.13 关于const声明的iota的使用

goCurrent · 2018-01-03 22:32:34 · 2496 次点击

我觉得不太有更简单的了,你可以将1000换成1e3,其实你可以看下go源代码的time.Duration,跟这个类似

const (
        Nanosecond  Duration = 1
        Microsecond          = 1000 * Nanosecond
        Millisecond          = 1000 * Microsecond
        Second               = 1000 * Millisecond
        Minute               = 60 * Second
        Hour                 = 60 * Minute
)

因为Go的常量声明必须再编译时就确定值,类型。所以我们也无法通过math.Pow10简化(也没简化。。)

#5
更多评论
const (
    KB = 1 << ((iota + 1) * 10)
    MB = 1 << ((iota + 1) * 10)
    GB = 1 << ((iota + 1) * 10)
)
#1

老哥这是2的次方的,但是题目要的是10的次方的

#2