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只作释放资源的处理不返回任何值。