私はScala言語が初めてです。
ロングタイプの射程が欲しい。
ステップ 1 で [1, 2, 3 ... 10000000] のリストが必要です。int の代わりに Long を使用しているため、until/to を使用するとエラーが発生します。
開始、終了、および空のリストを期待し、[開始..終了]のリストを生成する単純な関数を作成しようとしました。
これが私の機能です:
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 を回避するにはどうすればよいですか?
ありがとうございました。