首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kotlin -与使用start >= Instant && Instant <= end相比范围内的即时检查

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

Stack Overflow用户
提问于 2021-03-17 10:45:35
回答 1查看 671关注 0票数 3

例如,要在Kotlin中签入,如果一个Instant位于其他两个瞬间的开始和结束范围内,您只需执行以下操作:

代码语言:javascript
复制
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")

在我看来,这很容易理解

您还可以用以下标准方式进行检查:

代码语言:javascript
复制
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")

我现在的问题是,使用的资源和范围解决方案的额外开销是否存在差异。

出于某种原因,使用标准方法检查范围内的即时信息是否更好?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-17 11:20:12

在消耗的资源或范围解决方案的额外开销上有差异吗?

range解决方案实际上是creates a ClosedRange object,因为..运算符。然后,in和第二个代码片段- start <= toTest && toTest <= end做的事情完全一样。

因此,范围解决方案确实会做一些额外的事情,但是在几乎所有的情况下,这一点额外的工作并不是减缓应用程序速度的主要因素。不会有多大影响的。

是否由于某种原因使用标准的检查方法更好?

是的,因为它更简洁和可读性更强。它更清楚地显示了您的意图:“如果这个瞬间是in this range”,而不是“如果这个瞬间小于这个瞬间,大于那个瞬间”。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66671482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档