小编Ale*_*rev的帖子

Java或Scala中是否有用于时间间隔组合的库?

我正在寻找一个Java或Scala库允许布尔时间间隔的组合,以定义诸如"周一至周五除了23:00-23:20 UTC"之类的时期.像crontab间隔定义的东西,但允许任意组成.有什么相似的吗?

java datetime scala scheduling

5
推荐指数
1
解决办法
1723
查看次数

Scala 3 隐式转换:比较值和文字

我有一个不透明类型,它是通过在伴生对象范围中FancyDouble使用从 Double 隐式转换的。given Conversion[Double, FancyDouble] = FancyDouble(_)之后,构造val d: FancyDouble = 0.0工作,但是当我尝试进行类似的比较时if (d == 0.0),编译器抱怨我无法比较FanceDoubleand Double(我期望它应该将0.0文字隐式转换为 FancyDouble,就像前面的情况一样。

如何启用与隐式转换的比较?

scala implicit-conversion scala-3

5
推荐指数
1
解决办法
203
查看次数

Scala矢量拼接(维持排序顺序)

我需要维护一个排序的序列(可变或不可变 - 我不在乎),动态地将元素插入到它的中间(以保持它的排序)并同样删除它们(因此,通过索引随机访问是至关重要的).

我遇到的最好的事情是使用从2.11开始的Vector和scala.collections.Searching,然后:

var vector: Vector[Ordered]
... 
val ip = vector.search(element)
Run Code Online (Sandbox Code Playgroud)

插入:

vector = (vector.take(ip.insertionPoint) :+ element) ++ vector.drop(ip.insertionPoint)
Run Code Online (Sandbox Code Playgroud)

删除:

vector.patch(from = ip.insertionPoint, patch = Nil, replaced = 1)
Run Code Online (Sandbox Code Playgroud)

对我来说看起来不优雅,我怀疑性能问题.有没有更好的办法?拼接序列对我来说似乎是一个非常基本的操作,但我找不到一个优雅的解决方案.

sorting collections scala

2
推荐指数
1
解决办法
435
查看次数

Scala 3 中的递归高阶函数类型

我想为一个函数定义一个类型,该函数执行某些操作,然后返回另一个相同类型的函数[可以是它本身]。明显的想法不起作用(“非法循环类型引用”错误):

type Behavior[S] = S => Behavior[S]
Run Code Online (Sandbox Code Playgroud)

我在这里缺少什么明显的东西吗?我也不明白如何表达“函数返回自身”的想法。

scala higher-order-functions higher-order-types scala-3

2
推荐指数
1
解决办法
254
查看次数