例如,要在Kotlin中签入,如果一个Instant位于其他两个瞬间的开始和结束范围内,您只需执行以下操作:
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")我现在的问题是,使用的资源和范围解决方案的额外开销是否存在差异。
出于某种原因,使用标准方法检查范围内的即时信息是否更好?
发布于 2021-03-17 11:20:12
在消耗的资源或范围解决方案的额外开销上有差异吗?
range解决方案实际上是creates a ClosedRange object,因为..运算符。然后,in和第二个代码片段- start <= toTest && toTest <= end做的事情完全一样。
因此,范围解决方案确实会做一些额外的事情,但是在几乎所有的情况下,这一点额外的工作并不是减缓应用程序速度的主要因素。不会有多大影响的。
是否由于某种原因使用标准的检查方法更好?
是的,因为它更简洁和可读性更强。它更清楚地显示了您的意图:“如果这个瞬间是in this range”,而不是“如果这个瞬间小于这个瞬间,大于那个瞬间”。
https://stackoverflow.com/questions/66671482
复制相似问题