scala学习(二)

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

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

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取一次spa

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

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

一些富操做:对象

0 max 5 取大的值递归

0 min 5 取小的值资源

-2.7 abs 取绝对值input

-2.7 round  四舍五入

1.5 isInfinity  是不是无穷大

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

4 to 6 遍历4~6的数值

"bob" capitalize 首字母大写

1、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)

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

2、函数

函数是由: 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()的缩写,也就是说它能够带函数做参数,并执行对它的空参数列表调用.

3、懒值

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

 4、异常

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

5、try、catch、finally

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

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

相关文章
相关标签/搜索