正在学习scala语言,还谈不上有很深入的认识,至于为什么学习scala,最初的动力大概是它简洁的语法以及与Java的兼容性。它使用类似脚本语言的语法,实现了编译语言的执行效率,是最让Easwy心动的地方了。
看完”Programming in Scala”的前三章,参照书中的例子,我写了我的第一个scala脚本,功能很简单,它读入一个文本文件,然后把文件的内容加上行号后打印出来。
脚本程序如下:
import scala.io.Source if (args.length > 0) { val lines = Source.fromFile(args(0)).getLines.toList val maxWidth = lines.length.toString.length var i = 1 for (line <- lines) { val padding = maxWidth - i.toString.length print(" " * padding + i + " " + line) i += 1 } } else println("A file name is needed")
这个脚本要使用下面的命令执行:
scala printfile.scala a-text-file-here
如果你还没有安装scala,请到scala的主页下载并安装。
2010/04/07更新
在这个脚本中使用var变量,不太符合scala的编程思想,在文章scala学习:添加行号中,Easwy将其改成符合scala方式的val形式。
val maxWidth = lines.length.toString.length
求总共多少行的的长度;假如18行,岂不是值为2?