在 Kotlin 中 - 是否有一种惯用的方法来测试浮点数是否在一个(或两者)范围的开始或结束是互斥的范围内?
例如类似的东西
val inRange = 10.f in (0.0f until 20f)
Run Code Online (Sandbox Code Playgroud)
我似乎在文档中找不到任何关于此的内容。
更新:如何处理半开放范围?
该until函数创建半封闭整数(非浮点数)范围,其中包括左侧部分,排除右侧部分。
https://kotlinlang.org/docs/reference/ranges.html
Koltin https://kotlinlang.org/docs/reference/ranges.html#utility-functions支持封闭浮动范围
你可以自己实现
data class OpenFloatRange(val from: Float, val to: Float)
infix fun Float.open(to: Float) = OpenFloatRange(this, to)
operator fun OpenFloatRange.contains(f: Float) = from < f && f < to
val inRange = 10f in (0.0f open 20f)
Run Code Online (Sandbox Code Playgroud)
这里我使用了 Kotlin 的几个技巧:https : //kotlinlang.org/docs/reference/functions.html#infix-notation https://kotlinlang.org/docs/reference/operator-overloading.html#in
| 归档时间: |
|
| 查看次数: |
2897 次 |
| 最近记录: |