Scala基础语法
声明与定义:
val,常量声明 val x:T(把x声明成一个类型为T的常量) x是变量的名字,T是变量的类型 val x:T=e x是常量,值是不可以改变的
var,变量声明 var x:T (和val一样) var x:T=e x是变量,值是可以改变的
类型省略(默认类型) val x=e var x=e
声明省略(连续声明) val x1,x2,x3 等价于 val x1; val x2; val x3 var x1,x2,x3:T=e 等价于 var xn:T=e
def,函数声明 def abc(xn:T):T*=e def定义函数,abc函数名,xn参数,T参数类型,后面的T返回值类型
无参函数 def adder()=e
type类型声明
class,类声明
object,对象声明
Scala有哪些类型?
1.数值型:Int,Long,Short,Byte
2.浮点型:Double,Float
3.布尔型:Boolean
4.字符型:char , String Char序列
除了String归于java.lang包外,其他基本类型均是scala包的成员
Int等基本类型的全名是scala.Int,但是包scala同java.long的所有成员都能自动引用,因为能再实际使用时候简化
Scala操作符运算:
使用中缀数学操作符+、-、*、/、%并产生对应的数值结果
使用比较操作符<、>、>=、=<并产生布尔值结果
使用逻辑操作符&&、||并产生布尔值结果
使用对等操作符==、!=并产生布尔值结果
使用位操作符&、|、^、~并产生数值结果
实际上,ScaLa没有任何操作符,所有的操作符运算都是对方法(函数)的调用
如1+2实际上是调用了.+() 这个方法1.+(2)
在具体的调用中,调用+实际上包含了+的各种类型参数的重载,而无需额外定义 1+2就是两个Int类型相加,1+1.2就是Int+Double
操作符具有优先级 1+5*4=21 (1+5)*4=24
操作符优先级一般如下:
特殊字符 > */% > +- > : > =!> <> > & > ^ > | > 其他字母 > 赋值操作符
scala支持如“***”“+-+”之类的操作符重载,考虑其优先级一般以第一个符号为主
值得注意的是,形如“*=”的操作符重载,会被认为是赋值操作符而具有最低的优先级
m *= n+5 等价于 m *= (n+5)
语句结束:
Scala是基于行的语言,分号和换行均可作为语句的结束
判定换行是否为语句的结束有以下规则:
换行前的符号是一个语句的结束:常量、标识符、保留字及其他分隔符
换行后的符号是一个语句的开始:除部分分隔符及保留字外的所有符号
符号处在一个允许多语句的区域:Scala源文件中,匹配的{与}间
换行不作为语句的结束:
匹配的(与)之间,[与]之间
XML模式下的区域
case符号及匹配的=>符号之间
if、while、for、type是允许跨两行的合法语句
通常的Scala编写规范:
代码格式化,不同段落、不同文件的Scala应保持相同的语法格式
层次间缩进,避免长语句
合理的命名;
短作用域短名字,长作用域长名字
通用缩写,词意与目的相近,莫要使用add来命名一个做减法的函数
避免不同用途时重用名字
避免用反引号声明保留字
有返回值的方法(函数)用可描述的名字
利用{}创建复合表达式
及时注释