英文:
What does it mean to multiply a duration by a duration?
问题
令我惊讶的是,这段代码编译通过了。
结果是无意义的。
将一个持续时间乘以另一个持续时间并得到另一个持续时间是没有意义的。
发生了什么?
英文:
To my surprise, this compiled
fmt.Println(time.Second * time.Second)
The result is nonsense
277777h46m40s
It doesn't make any sense to multiply a duration by duration and get another duration.
What's going on?
答案1
得分: 11
Duration类型只是一个int64类型的变量,表示以纳秒计算的持续时间。
type Duration int64
Duration表示两个时刻之间经过的时间,以int64类型的纳秒计数表示。
因此,将一个持续时间乘以另一个持续时间,得到的结果是两者纳秒数的乘积。在我的例子中,这将得到一万亿亿纳秒,或者是277777小时46分钟40秒
。虽然没有实际意义,但是是明确定义的!
英文:
The Duration type is simply an int64 representing the duration as a nanosecond count
> type Duration int64
>
> A Duration represents the elapsed time between two instants as an int64 nanosecond count.
So multiplying one duration by another gives the result of multiplying the number of nanoseconds in each. In my example, this gives a billion billion nanoseconds, or 277777h46m40s
. Nonsense, but well-defined!
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论