gpt4 book ai didi

java - Kotlin - 与使用 start >= Instant && Instant <= end 相比检查范围内的 Instant

转载 作者:行者123 更新时间:2023-12-05 02:43:58 33 4
gpt4 key购买 nike

例如,如果一个 Instant 在其他两个 Instant 的开始和结束范围内,您想在 Kotlin 中检查,您可以简单地执行以下操作:

import java.time.Instant

val start = Instant.parse("2000-10-23T00:00:00Z");
val end = Instant.parse("2020-10-23T23:59:59Z");


val toTest = Instant.parse("2010-10-24T00:00:00Z");

if(toTest in start..end) println("Yes") else println("No")

我认为这很容易理解

你也可以用标准的方式写下下面的检查:

import java.time.Instant

val start = Instant.parse("2000-10-23T00:00:00Z");
val end = Instant.parse("2020-10-23T23:59:59Z");

val toTest = Instant.parse("2020-10-24T00:00:00Z");

val result = start <= toTest && toTest <= end
if(result) println("Yes") else println("No")

我现在的问题是,范围解决方案在消耗资源或额外开销方面存在差异。

出于某种原因,使用标准方法进行检查是否更好?某个范围内的瞬间?

最佳答案

Is there a difference in consumed resources or in additional overhead with the range solution?

实际上范围解creates a ClosedRange<Instant> object , 因为 ..运算符(operator)。那么in与第二个代码片段完全相同 - start <= toTest && toTest <= end .

所以范围解决方案确实做了一些额外的事情,但在几乎所有情况下,这一点额外的工作都不会成为减慢应用程序速度的主要原因。这不会很重要。

Is it better for some reason to use the standard way for checking

是的,因为它更简洁易读。通过说“如果这个瞬间在这个范围”而不是“如果这个瞬间小于这个瞬间,大于那个瞬间”。

关于java - Kotlin - 与使用 start >= Instant && Instant <= end 相比检查范围内的 Instant,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66671482/

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