我正在阅读scala doc for the scala.concurrent.duration.Duration
class,发现它的开头是:
This class is not meant as a general purpose representation of time, it is optimized for the needs of scala.concurrent.
为什么说这句话的含义?有什么更好的选择?
最佳答案
我想我对此负有部分责任。
这里的普遍问题是时间系统很难。真的,真的,真的很难。
致力于标准化 future 的Akka开发人员需要一种结构来描述两个“匿名”时间点之间的长度,以实现其功能。 Duration
旨在解决此特定要求。
我担心的是,人们可能会开始使用这种与时间相关的类来处理某些事情,而该类并非旨在使我们陷入类似于java.util.Date
/java.util.Calendar
的麻烦情况(并非完全因为Duration
实际上适用于其用例),在这种情况下,很多人误将其用作某种scala.time
,这本来就不是。
这就是为什么它具有此注释并被打包为scala.concurrent.duration
而不是e的原因。 G。 scala.time
。
我期待Java 8附带的java.time
软件包。将来可能会对此进行标准化,这将稍微提高互操作性,并具有为更广泛的用例设计的额外好处。 (不过,Scala使用Java 8作为基线可能要花很长时间……)
关于scala持续时间: "This class is not meant as a general purpose representation of time, it is optimized for the needs of scala.concurrent.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18680220/