我是 Scala 语言的新手。
我需要 Long 类型的 Range。
我需要一个包含步骤 1 的 [1, 2, 3 ... 10000000] 列表。如果我使用 until/to 我会因为使用 Long 而不是 Int 而出现错误。
我尝试编写一个简单的函数,它需要一个开始、一个结束和一个空列表,并生成一个 [start .. end] 列表。
这是我的功能:
def range_l(start : Long, end : Long, list : List[Long]) : List[Long] = {
if (start == end){
val add_to_list = start :: list
return add_to_list
}
else {
val add_to_list = start :: list
range_l(start + 1, end, add_to_list)
}
}
如果我这样称呼它:我在以下行中range_l(1L, 1000000L, List())
收到错误:OutOfMemory
add_to_list = start :: list
你能给我什么建议?我怎样才能获得Range[Long]
或如何优化功能。如何避免 OutOfMemory?
谢谢你。