大三寒假学习 spark学习 Scala基本语法

Scala有两种类型的变量

  • val 不可变 声明时必须被初始化,初始化后就不能再赋值
  • var 可变的 声明的时候需要初始化,初始化后可以被赋值

Scala的数据类型

  

  和Java不同的是,在Scala中,这些类型都是“类”,并且都是包scala的成员,比如,Int的全名是scala.Int。对于字符串,Scala用java.lang.String类来表示字符串

字面量(literal)我初步理解为变量的值

  

运算符:

  • 算术运算符:加(+)、减(-) 、乘(*) 、除(/) 、余数(%);
  • 关系运算符:大于(>)、小于(<)、等于(==)、不等于(!=)、大于等于(>=)、小于等于(<=)
  • 逻辑运算符:逻辑与(&&)、逻辑或(||)、逻辑非(!);
  • 位运算符:按位与(&)、按位或(|)、按位异或(^)、按位取反(~)等
  • 赋值运算符:=及其与其它运算符结合的扩展赋值运算符,例如+=、%=。

  注意:在Scala中没有++与--运算符

  在Scala中运算符就是方法。如5+3实际是(5).+(3) 是a.方法(b)的形,所以说Scala是一门纯粹的面向对象的语言。  

  

 富包装类:

  • 对于基本数据类型,除了以上提到的各种操作符外,Scala还提供了许多常用运算的方法,只是这些方法不是在基本类里面定义,还是被封装到一个对应的富包装类中
  • 每个基本类型都有一个对应的富包装类,例如Int有一个RichInt类、String有一个RichString类,这些类位于包scala.runtime中
  • 当对一个基本数据类型的对象调用其富包装类提供的方法,Scala会自动通过隐式转换将该对象转换为对应的富包装类型,然后再调用相应的方法。例如:3 max 5

  感觉就像Java中Integer 类与int的关系一样。Integer 类在对象中包装了一个基本类型 int 的值。Integer 类对象包含一个 int 类型的字段。

Range:

  实现类似for循环的功能,Range支持多种数据类型包括Int,Float,Double等

  感觉可以类比python中的range

  

控制台输入输出语句:

  • 从控制台读写数据方法:readInt、readDouble、readByte、readShort、readFloat、readLong、readChar readBoolean及readLine,分别对应9种基本数据类型,其中前8种方法没有参数,readLine可以不提供参数,也可以带一个字符串参数的提示
  • 所有这些函数都属于对象scala.io.StdIn的方法,使用前必须导入,或者直接用全称进行调用

  

   

  • print()和println(),可以直接输出字符串或者其它数据类型,其中println在末尾自动换行。

读写文件:

  • 写入文件:

    Scala需要使用java.io.PrintWriter实现把数据写入到文件,PrintWriter类提供了print 和println两个写方法

    

    

  • 读取文件: 

    可以使用Scala.io.Source的getLines方法实现对文件中所有行的读取

    

     

异常处理:

  与java一样使用try—catch捕获异常

原文地址:https://www.cnblogs.com/fengchuiguobanxia/p/15760775.html