Tej*_*eni 1 functional-programming scala scala-2.8
这是我正在研究的示例程序,用于读取每行一个值列表的文件.我必须添加所有这些值转换为double,还需要对值进行排序.这是我到目前为止所做的,它工作正常.
import scala.io.Source
object Expense{
def main(args: Array[String]): Unit = {
val lines = Source.fromFile("c://exp.txt").getLines()
val sum: Double = lines.foldLeft(0.0)((i, s) => i + s.replaceAll(",","").toDouble)
println("Total => " + sum)
println((Source.fromFile("c://exp.txt").getLines() map (_.replaceAll(",", "").toDouble)).toList.sorted)
}
}
Run Code Online (Sandbox Code Playgroud)
这里的问题是,你可以看到我正在读取文件两次,我想避免它.由于它Source.fromFile("c://exp.txt").getLines()给你一个迭代器,我只能循环它一次,然后下一个操作它将为null,所以我不能再次重复使用它lines进行排序,我需要再次从文件中读取.另外,我不想将它们存储到临时列表中.是否有任何优雅的方式以功能的方式这样做?
将其转换为a List,以便您可以重复使用它:
val lines = Source.fromFile("c://exp.txt").getLines().toList
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
588 次 |
| 最近记录: |