Scala是一门多范式的编程语言,一种类似java的编程语言,设计初衷是实现可伸缩的语言、并集成面向对象编程和函数式编程的各种特性。
Scala 运行在Java虚拟机上,并兼容现有的Java程序。
Scala 源代码被编译成Java字节码,所以它可以运行于JVM之上,并可以调用现有的Java类库。
下面这段程序用到了scala许多基础知识,通过它可以宏观的了解整个Scala的基础语法和使用方法。
object helloworld{ /*object类似于static关键字,对于class所有方法和成员在实例被new之前都是无法访问的, 但是object下的方法和成员都可直接访问。*/
//所有的main方法都必//须在object中被调用,来提供程序的主入口
def main(args:Array[String]){
//变量var ,常量val
var myVar:String="foo" //变量 也可写成 var myVar="foo"
var my :Int = 9 // ;分号不是必须的
val myVas:String="too" //常量
print(myVar+myVas) // +号跟myVas.concat(myVas)效果相同。
/*变量可以批量设置*/
val (mn1:Int,mn2:String) = Pair(24,"qifei")
//数组和for循环
var myList =Array(2,3,4,5); var total=0.0;
for(x<-myList){print(x) }
for(i<- 0 to(myList.length-1)){ total+=myList(i); println(total) }
// swithch(a){case1: }对应 a match{ case 1 => "one"}
//正则表达式匹配
val pattern = "Scala".r //r() 方法构造了一个Regex对象
val str = "Scala is Scalable andcool"
println(pattern findFirstIn str)//findFirstIn 方法找到首个匹配项,查看所有的匹配项可以使用 findAllIn 方法
//迭代器
var ita=Iterator(2,4,6,8);println( ita.size)//size和length效果相同
while(ita.hasNext){println( ita.next() ) }
var itb=Iterator("beijing","shanghai","guangzhou");
while(itb.hasNext){println( itb.next() ) }
//split分隔
val str="Zara@gmail.com"
val parts = strsplit "@"
if (parts.length== 2){
Some(parts(0), parts(1))
}
//I/O 写入和读取
val writer = new PrintWriter(newFile("test.txt" )) //写入
writer.write("菜鸟教程")
writer.close()
Source.fromFile("test.txt").foreach{ print } //读取
val line = Console.readLine //屏幕上输入的指令
print(line)
//异常处理
try {
val f = new FileReader("input.txt")
} catch {
case ex: FileNotFoundException => {
println("Missing fileexception")
}
case ex: IOException => {
println("IO Exception")
}
} finally {
println("Exitingfinally...")
}
//标准函数定义
def demo1(a:Int,b:Int):Int ={
var mm:Int = 0
mm= a+b
return mm
}
demo1(3,2)//调用函数
// defisEqual(obj: Any) 接收任何参数,不限数量。
(new Outer).qi() //调用下面outer类的qi()方法
}//主方法
}//构造类
//新建Outer类,类和方法的访问修饰符分别有private,protected,public(默认为public)
class Outer{
def qi(){ //方法一般都是用def修饰
if(3>2){ //if语句同java相同。其他循环结构也同java类似。
println("qi()方法成功运行")
}
else{ }
}//方法
} //Outer类
这段程序把Scala的大多基础知识都用到了,也带有详细注释,看完之后应该能对scala语法和基本使用有一定的了解了。