基础知识
常量和变量 :尽量使用常量,可以避免很多问题,比方说多线程
变量的命名 :数字字母 ,下划线要注意特殊的用法
数据类型 :java里有基本数据类型 和引用数据类型
scala :Any
AnyVal:大体上等价于java的基本类型
Long,Int
StringOps 使用String的时候,有些情况会通过隐式转换的形式到这个类型
Unit:类似java的void
AnyRef 大体上的等价于java的引用类型
java中所有的类,到scala中都属于AnyRef
scala的所以集合
定义的所有的类
Null 只有一个null
Noting 所有的类的子类
如何抛的异常,则返回类型是Nothing
没有对象,也没有子类
数据之间的转化 值类型的转换 .toint
.toLong
AnyRef类型的转换 .isInstanceoof[..]
.asInstanceoof[..]
很多时候模式匹配来替换 AnyRef类型的转换
流程控制 顺序
选择(有返回值)
if else if else val max=if(m>n) m else n
模式匹配
循环(无返回值)
while 或者do while(这个很少使用)
for 本质上是一种遍历或迭代
去遍历一个序列(集合,字符串...)
守卫
嵌套
...
for推导式 val nums =for(i <-1 to 100) yield i*i
val nums =(1 to 100).map(x=> x*x )替换上面
循环的退出 1.抛出异常 一.自己抛,自己捉,try catch
二.scala提供的模板完成 break(抛异常) breakable(捉异常)
2.把循环放在函数内,使用return结束函数,从而结束循环
运算符 scala中没有真正的运算符,所有的运算符都是方法名
1+2 表示1.+(2)
结合性 左结合(数学运算符)
右结合 1.(:结尾的是右结合) :: ::: /: +:
a List(2,3) b List(a,b)
b::a=List(List(a,b),2,3)
a List(A,B) b List(A,B)
a:::B=List(A,B,A,B)
2.赋值号 a=3+4