乘以一个持续时间的持续时间意味着什么?

huangapple go评论135阅读模式
英文:

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!

huangapple
  • 本文由 发表于 2013年7月11日 00:12:42
  • 转载请务必保留本文链接:https://go.coder-hub.com/17575733.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定