mac*_*ers 3 java functional-programming scala
我是Scala的新手.我想从文本文件中读取行并拆分并对每行进行更改并输出它们.
这是我得到的:
val pre:String = " <value enum=\""
val mid:String = "\" description=\""
val sur:String = "\"/>"
for(line<-Source.fromFile("files/ChargeNames").getLines){
var array = line.split("\"")
println(pre+array(1)+mid+array(3)+sur);
}
Run Code Online (Sandbox Code Playgroud)
它的工作原理是面向对象的编程方式而不是函数式编程方式.
我想熟悉Scala,以便任何能够以函数式编程方式更改代码的人?
谢谢.
一次遍历,没有额外的记忆
Source
.fromFile("files/ChargeNames")
.getLines
.map { line =>
//do stuff with line like
line.replace('a', 'b')
}
.foreach(println)
Run Code Online (Sandbox Code Playgroud)
或@ziggystar表示,代码更快一点
Source
.fromFile("files/ChargeNames")
.getLines
.foreach { line =>
//do stuff with line like
println(line.replace('a', 'b'))
}
Run Code Online (Sandbox Code Playgroud)
val ans = for (line <- Source.fromFile.getLines) yield (line.replace('a', 'b')
ans foreach println
Run Code Online (Sandbox Code Playgroud)