Scala语言总结概括(代码实例版)

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语法和基本使用有一定的了解了。


第1章,“可伸展的语言”,给出了Scala的设计,和它后面的理由,历史的概要。 第2章,“Scala的第一步”,展示给你如何使用Scala完成若干种基本编程任务,而不牵涉过多关于如何工作的细节。本章的目的是让你的手指开始敲击并执行Scala代码。 第3章,“Scala的下一步”,演示更多的基本编程任务来帮助你更快速地上手Scala。本章之后,你将能够开始在简单的脚本任务中使用Scala。 第4章,“类和对象”,通过描述面向对象语言的基本建设模块和如何编译及运行Scala程序的教程开始有深度地覆盖Scala语言。 第5章,“基本类型和操作”,覆盖了Scala的基本类型,它们的文本,你可以执行的操作,优先级和关联性是如何工作的,还有什么是富装器。 第6章,“函数式对象”,进入了Scala面向对象特征的更深层次,使用函数式(即,不可变)分数作为例子。 第7章,“内建控制结构”,显示了如何使用Scala的内建控制结构,如,if,while,for,try和match。 第8章,“函数和闭”,深度讨论了函数式语言的基础建设模块,函数。 ...... 第31章,“组合子解析”,显示了如何使用Scala的解析器组合子库来创建解析器。 第32章,“GUI编程”,展示了使用Scala库简化基于Swing的GUI编程的快速旅程。 第33章,“SCell电子表”,通过展示一个完整的电子表的实现,集中演示了Scala的一切。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值