scala基本数据类型和运算符_第1页
scala基本数据类型和运算符_第2页
scala基本数据类型和运算符_第3页
scala基本数据类型和运算符_第4页
scala基本数据类型和运算符_第5页
已阅读5页,还剩12页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

scala基本数据类型和运算符2知识目标学习Scala的数据类型学习Scala的变量和字符学习Scala的运算符01能力目标掌握Scala的基本数据类型掌握Scala的变量和字符掌握Scala的运算符及使用02学习目标3目录0102数据类型字面量0304原生字符串运算符数据类型-类型支持4Scala拥有下表所示的数据类型,其中Byte、Short、Int、Long和Char类型统称为整数类型,整数类型加上Float和Double统称为数值类型。Scala数值类型的取值范围和Java对应类型的取值范围相同,如表所示:类型支持5数据类型描述Byte8位有符号补码整数。数值区间为-128到127Short16位有符号补码整数。数值区间为-32768到32767Int32位有符号补码整数。数值区间为-2147483648到2147483647Long64位有符号补码整数。数值区间为-9223372036854775808到9223372036854775807Float32位,IEEE754标准的单精度浮点数Double64位IEEE754标准的双精度浮点数Char16位无符号Unicode字符,区间值为U+0000到U+FFFFString字符序列类型支持6Booleantrue或falseUnit表示无值,等同于Java中的void。用作不返回任何结果的方法的结果类型。Unit只有一个实例值,写成()。Nullnull或空引用NothingNothing类型在Scala的类层级的最低端;它是任何其他类型的子类型。AnyAny是所有其他类的超类AnyRefAnyRef类是Scala里所有引用类(referenceclass)的基类数据类型-定义变量7Scala的变量分为两种,val和var,其区别如下:val

:类似于Java中的final变量,一旦初始化就不能被重新赋值;var

:类似于Java中的非final变量,在整个声明周期内var可以被重新赋值;scala>vala=1a:Int=1

scala>a=2<console>:8:error:reassignmenttoval//不允许重新赋值

scala>varb=1b:Int=1

scala>b=2b:Int=2数据类型-类型推断8在上面的演示中,并没有声明a是Int类型,但是程序还是把a当做Int类型,这就是Scala的类型推断。在大多数情况下,你都无需指明变量的类型,程序会自动进行推断。如果你想显式的声明类型,可以在变量后面指定,如下:scala>valc:String="helloscala"c:String=helloscala数据类型-Scala解释器9在

scala

命令行中,如果没有对输入的值指定赋值的变量,则输入的值默认会赋值给

resX(其中

X是一个从

0开始递增的整数),res

result的缩写,这个变量可以在后面的语句中进行引用。scala>5res0:Int=5

scala>res0*6res1:Int=30

scala>println(res1)30字面量10Scala和Java字面量在使用上很多相似,比如都使用F或f表示浮点型,都使用L或l表示Long类型。下文主要介绍两者差异部分。scala>1.2res0:Double=1.2scala>1.2fres1:Float=1.2scala>1.4Fres2:Float=1.4scala>1res3:Int=1scala>1lres4:Long=1

scala>1Lres5:Long=1原生字符串11Scala提供了

"""..."""

语法,通过三个双引号来表示原生字符串和多行字符串,使用该种方式,原生字符串中的特殊字符不会被转义。scala>"hello\tool"res4:String=helloool

scala>"""hello\tool"""res5:String=hello\tool

scala>"""hello|world"""res6:String=helloworld符号字面量12符号字面量写法为:

'标识符

,这里标识符可以是任何字母或数字的组合。符号字面量会被映射成

scala.Symbol

的实例,如:符号字面量

'x

会被编译器翻译为

scala.Symbol("x")。符号字面量可选方法很少,只能通过

.name

获取其名称。注意:具有相同

name

的符号字面量一定指向同一个Symbol对象,不同

name

的符号字面量一定指向不同的Symbol对象。scala>valsym='ID008sym:Symbol='ID008

scala>res12:String=ID008插值表达式13Scala支持插值表达式。scala>valname="xiaoming"name:String=xiaoming

scala>println(s"Mynameis$name,I'm${2*9}.")Mynameisxiaoming,I'm18.运算符-运算符及方法14Scala和其他语言一样,支持大多数的操作运算符:算术运算符(+,-,*,/,%)关系运算符(==,!=,>,<,>=,<=)逻辑运算符(&&,||,!,&,|)位运算符(~,&,|,^,<<,>>,>>>)赋值运算符(=,+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=)Scala的面向对象比Java更加纯粹,在Scala中一切都是对象。所以对于

1+2,实际上是调用了Int类中名为

+

的方法,所以1+2,也可以写成

1.+(2)。scala>1+2res14:Int=3

scala>1.+(2)res15:Int=3运算符-逻辑运算符15和其他语言一样,在Scala中

&&,||

的执行是短路的,即如果左边的表达式能确定整个结果,右边的表达式就不会被执行,这满足大多数使用场景。但是如果你需要在无论什么情况下,都执行右边的表达式,则可以使用

&

|

代替。运算符-赋值运算符16在Scala中没有Java中的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论