gpt4 book ai didi

scala - 仅在有限的时间内为变量赋值

转载 作者:行者123 更新时间:2023-12-01 08:58:30 25 4
gpt4 key购买 nike

假设有一个 bool 变量,最初赋值为 false。有没有办法说,让这个变量在接下来的 5 分钟内为 true,然后让它再次为 false

我目前的想法是我可以将变量与时间戳一起存储,然后一旦将变量变为true,将时间戳设置为当前时间,然后检查变量的值通过一个方法,如果当前时间和初始时间戳形成小于 5 分钟的持续时间,则返回 true,如果持续时间大于 5 分钟,则返回 false。我正在考虑从 BooleanRichBoolean 的隐式转换,该转换将通过优雅的方法名称或其他方式处理此机制。

有没有更优雅或 Scala 原生的方式来做到这一点?

最佳答案

时间戳的想法很容易实现(这里的参数以秒为单位):

class TransientlyTrue(duration: Double) {
private[this] val createdAt = System.nanoTime
def value = (System.nanoTime-createdAt)*1e-9 <= duration
}
implicit def TransientToBoolean(t: TransientlyTrue) = t.value

通过隐式转换,您可以将其透明地放在需要 Boolean 的任何位置。或者你可以把它关掉,只调用 .value.

关于scala - 仅在有限的时间内为变量赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23943918/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com