scala学习(二)

本文介绍了Scala编程语言的基础概念,包括基本类型、字符字面量、范围操作符的使用方法,以及Scala特有的==、eq和ne比较方法。此外,还详细解释了富操作、高级for循环、函数定义及调用、懒值、异常处理等核心特性。

  scala中的基本类型和java的基本类型一样。

字符字面量:八进制数必须在'\0'和'\377'之间。十六进制以前缀\u的4位十六进制数字的通用Unicode字符方式给出。

1 to 5  //1~5包含5 ; 1 until 5 //1~5不包含5

to、until有个重载的方法如:1 to 5,2 结果Range(1, 3, 5) //区间从1开始1*2取一次

Scala中的==与java中的==和equals:

scala中的==可以比较任何类型还会做null处理,如果左边调用的是null直接返回false,它会比较对象的值。scala中还专门有一个eq方法与java中的==方法对应,还有的ne比较两个对象不相等的方法

一些富操作:

0 max 5 取大的值

0 min 5 取小的值

-2.7 abs 取绝对值

-2.7 round  四舍五入

1.5 isInfinity  是否是无穷大

(1.0/0)isInfinity 是否是无穷大

4 to 6 遍历4~6的数值

"bob" capitalize 首字母大写

一、scala高级for循环和for推到式

for(i <- 1 to 3 ; j <- 1 to 3 if i != j) println(10 * i + j)

这就相当于java中的:

int[] inti = {1,2,3};

int[] intj = {1,2,3};

for(int i=0;i<inti.length;i++){

    for(int j=0;intj<length;j++){

        if(i != j){

            System.out.println(10*i+j);

        }

    }

}

for(i <- 1 to 10) yield i%3     //值Vetor(1,2,0,1,2,0,1,2,0,1)

返回一个集合,每次迭代生成集合中的一个值

二、函数

函数是由: def 函数名(参数名:参数类型) = {函数体}

只有一行表达式可以省略大括号{},如果是递归函数就必须加上 :返回类型 如果没有返回类型,Scala编译器无法校验递归函数的返回类型。

可变参数 参数类型*  如:def sum(args:Int*)= {var result=0 ;for(arg <- args) result += arg;result}

可以val s = sum(1,4,8,18)  值31

      val  s =sum(1 to 5 : _*)  值15

      val  s =sum(1 to 5)  //编译出错不能传一个区间

函数 _ () 是 f => f()的缩写,也就是说它可以带函数作参数,并执行对它的空参数列表调用.

三、懒值

如 lazy val i = 80 max 1 //在首次使用的时候取值

 四、异常

scala与java一样会抛出java.lang.Throwable的子类异常,但是scala中没有受检查异常。

五、try、catch、finally

val a = try{val f= new FileReader("input.txt")}catch{cese e:Exception => }finally{2}

没有异常a的值就是try块的返回值,如果有异常就是catch块的返回值。finally只做释放资源的处理不返回任何值。

转载于:https://my.oschina.net/u/2300159/blog/494713

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值