scala的函数式编程风格非常特殊,特别是对于一个java程序员来说。死磕吧
先来一个完整的函数样式
scala> def printArgs(args:Array[String]):Unit ={
| var i = 0
| while (i<args.length) {
| println(args(i))
| i += 1
| }
| }
printArgs: (args: Array[String])Unit
scala> val arr=Array("This","is","Friday!")
arr: Array[String] = Array(This, is, Friday!)
scala> printArgs(arr)
This
is
Friday!
下一步,我们去掉var把代码变得更函数式风格。
scala> def printArgs(args: Array[String]): Unit = {
| for (arg <- args)
| println(arg)
| }
printArgs: (args: Array[String])Unit
scala> printArgs(arr)
This
is
Friday!
用for代替foreach
scala> def printArgs(args: Array[String]):Unit = {
| args.foreach(println)
| }
printArgs: (args: Array[String])Unit
scala> printArgs(arr)
This
is
Friday
更进一步
scala> def formatArgs(args: Array[String]) = args.mkString("\n")
formatArgs: (args: Array[String])String
scala> formatArgs(arr)
res42: String =
This
is
Friday!
scala> println(formatArgs(arr))
This
is
Friday!