【发布时间】:2021-12-25 02:59:16
【问题描述】:
我需要生成具有特定开始和结束以及给定增量的特定数字类型的元素序列。这是我想出的:
import java.text.DecimalFormat
def round(elem: Double): Double = {
val df2 = new DecimalFormat("###.##")
df2.format(elem).toDouble
}
def arrange(start: Double, end: Double, increment: Double): Seq[Double] = {
@scala.annotation.tailrec
def recurse(acc: Seq[Double], start: Double, end: Double): Seq[Double] = {
if (start >= end) acc
else recurse(acc :+ round(start + increment), round(start + increment), end)
}
recurse(Seq.empty[Double], start, end)
}
arrange(0.0, 0.55, 0.05) foreach println
这按预期工作,并给我以下结果:
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
0.45
0.5
0.55
但是,我想看看我是否可以使这个通用化,以便相同的函数适用于 Int、Long、Float。有没有办法简化这个?
【问题讨论】:
-
那是什么函数?
-
List.range- 其实你可以用任何集合替换List。