一、简述
Scala语言的名称来自于“可伸展的语言”。之所以这样命名,是因为他被设计成随着使用者的需求而成长。用Scala语言编写应用程序可以有很大的范围:小到写脚本,大到建立大系统。
Scala是很容易进入的语言,它跑在标准的Java平台上,可以与所有的Java库实现无缝交互。它也是用来编写脚本把Java控件链在一起的很好的语言,但是用它来建立大系统和可重用控件的架构将更能够发挥它的力量。从技术层面上来说, Scala是一种把面向对象和函数式编程理念加入到静态类型语言中的混血儿, Scala的许多不同的方面都展现了面向对象和函数式编程的熔合;或许它比其他那些广泛使用的语言更有渗透性。在可伸展性方面,这两种编程风格具有互补的力量,Scala的函数式编程使得它便于快速地从简单的碎片开始建立一些有趣的东西。它的面向对象特性又使它便于构造大型系统并使它们适应于新的需求。Scala中这两种风格的组合使得它有可能表达新的编程模式和控件抽象。并产生了易读、简洁的编程风格。
二、实例展示
利用Scala语言编写一个小程序:从文件中遍历内容并输出这些内容。
import scala.io.Source class BaseOptDemo { def fileOpt() : Unit = { val files = paramConver() if(files.length > 0){ val lines = Source.fromFile(files.apply(0)).getLines().toList val longestLine = lines.reduceLeft( (a,b) => if(a.length > b.length) a else b ) val maxLength = widthOfLength(longestLine) for(line <- lines){ val numSpaces = maxLength - widthOfLength(line) val padding = " " * numSpaces print(padding + line.length + " | " + line) } }else { Console.err.println("Please Enter filename") } } private def paramConver() : Array[String] = { val files = new Array[String](2) files(0) = "D:/scala/file_1.txt" files(1) = "D:/scala/file_2.txt" return files } private def widthOfLength(s:String) = s.length.toString.length }
三、编写测试用例
object BaseOpt extends App{ new BaseOptDemo().fileOpt() }
四、测试结果
10 | AAAAAAAAAA10 | BBBBBBBBBB10 | CCCCCCCCCC10 | DDDDDDDDDD10 | EEEEEEEEEE