用法 二
sealed abstract class Duration extends Serializable with Ordered[Duration]
用于处理 java.util.concurrent.TimeUnit 持续时间的实用程序。
此类不是作为时间的通用表示,它针对 scala.concurrent
的需求进行了优化。
基本用法
例子:
import scala.concurrent.duration._
val duration = Duration(100, MILLISECONDS)
val duration = Duration(100, "millis")
duration.toNanos
duration < 1.second
duration <= Duration.Inf
调用无法表达的转换(如无限期调用 toSeconds
)将引发 IllegalArgumentException。
还为 Int、Long 和 Double 提供了隐式。示例用法:
import scala.concurrent.duration._
val duration = 100.millis
隐式转换提供的 DSL 始终允许构造有限的持续时间,即使对于无限的 Double 输入也是如此;改用 Duration.Inf。
提取器、解析和算术也包括在内:
val d = Duration("1.2 µs")
val Duration(length, unit) = 5 millis
val d2 = d * 2.5
val d3 = d2 + 1.millisecond
时间单位的处理
在有限持续时间上执行的计算始终保留任一操作数的更精确单位,无论更粗略的单位是否能够准确表示相同的持续时间。这意味着 Duration 可以用作(长度,单位)对的无损容器,如果它是使用相应的方法构造的并且不对其执行任何算术运算;在这种情况下,应小心添加/减去持续时间。
对应双重语义
Duration 上算术运算的语义是two-fold:
- 在有限的持续时间内以纳秒分辨率精确加/减,与被加数的大小无关 - 当涉及到无限或未定义的值时,与 java.lang.Double
同构
Duration 和 Double 之间的转换是使用 Duration.toUnit(单位为 NANOSECONDS)和 Duration.fromNanos(Double) 完成的
排序
默认排序与 Double 数字的排序一致,这意味着 Undefined 被认为大于所有其他持续时间,包括 Duration.Inf 。
伴生:
- object
源码:
- Duration.scala
相关用法
- Scala duration.Deadline用法及代码示例
- Scala duration.span用法及代码示例
- Scala duration.fromNow用法及代码示例
- Scala double.<=用法及代码示例
- Scala double.ToLong用法及代码示例
- Scala double.Min用法及代码示例
- Scala double.Max用法及代码示例
- Scala double.Negate用法及代码示例
- Scala double.ToInt用法及代码示例
- Scala double.-用法及代码示例
- Scala double.<用法及代码示例
- Scala double.ToFloat用法及代码示例
- Scala double.>=用法及代码示例
- Scala double.%用法及代码示例
- Scala double./用法及代码示例
- Scala double.*用法及代码示例
- Scala double.+用法及代码示例
- Scala double.>用法及代码示例
- Scala double.Abs用法及代码示例
- Scala Tabulate.sliding用法及代码示例
- Scala ArrayBuffer.inits用法及代码示例
- Scala long.BitwiseOr用法及代码示例
- Scala StringBuilder.partitionMap用法及代码示例
- Scala List distinct()用法及代码示例
- Scala DefaultMap.sizeIs用法及代码示例
注:本文由纯净天空筛选整理自scala-lang.org大神的英文原创作品 duration.Duration。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。