从小就学习不好

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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来命名一个做减法的函数

      避免不同用途时重用名字

      避免用反引号声明保留字

      有返回值的方法(函数)用可描述的名字

    利用{}创建复合表达式

    及时注释 

posted on 2019-03-13 22:18  从小就学习不好  阅读(159)  评论(0编辑  收藏  举报