1 scala数据类型介绍

Scala 与 Java有着相同的数据类型,在Scala中数据类型都是对象,也就是说scala没有java中的原生类型

Scala数据类型分为两大类 AnyVal(值类型) 和 AnyRef(引用类型), 注意:不管是AnyVal还是AnyRef 都是对象。

相对于java的类型系统,scala要复杂些!也正是这复杂多变的类型系统才让面向对象编程和函数式编程完美的融合在了一起

2 scala数据类型体系一览 图

3 scala数据类型列表

Scala的整型 常量/字面量 默认为 Int 型,声明Long型 常量/字面量 须后加‘l’’或‘L’ [反编译看]

Scala的浮点型常量默认为Double型,声明Float型常量,须后加‘f’或‘F’。

 字符类型本质探讨

字符型 存储到 计算机中,需要将字符对应的码值(整数)找出来

存储:字符——>码值——>二进制——>存储

读取:二进制——>码值——> 字符——>读取

Unit类型、Null类型和Nothing类型

1)Null类只有一个实例对象,null,类似于Java中的null引用。null可以赋值给任意引用类型(AnyRef),但是不能赋值给值类型(AnyVal: 比如 Int, Float, Char, Boolean, Long, Double, Byte, Short)

2) Unit类型用来标识过程,也就是没有明确返回值的函数。由此可见,Unit类似于Java里的void。Unit只有一个实例,(),这个实例也没有实质的意义

3)Nothing,可以作为没有正常返回值的方法的返回类型,非常直观的告诉你这个方法不会正常返回,而且由于Nothing是其他任意类型的子类,他还能跟要求返回值的方法兼容。

4 值类型转换

当Scala程序在进行赋值或者运算时,精度小的类型自动转换为精度大的数据类型,这个就是自动类型转换(隐式转换)。

案例演示

自动类型转换细节说明

1)有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。 5.6 + 10 = 》double

2)当我们把精度(容量)大 的数据类型赋值给精度(容量)小 的数据类型时,就会报错,反之就会进行自动类型转换。

3)(byte, short) 和 char之间不会相互自动转换

4) byte,short,char  他们三者可以计算,在计算时首先转换为int类型。

5)自动提升原则: 表达式结果的类型自动提升为 操作数中最大的类型

5 强制类型转换

自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转函数,但可能造成精度降低或溢出,格外要注意。

java : int num = (int)2.5 scala : var num : Int = 2.7.toInt //对象

强制类型转换细节说明

1) 当进行数据的 从 大——>小,就需要使用到强制转换

2)强转符号只针对于最近的操作数有效,往往会使用小括号提升优先级

3)Char类型可以保存 Int的常量值,但不能保存Int的变量值,需要强转

4)Byte和Short类型在进行运算时,当做Int类型处理。

6  值类型和String类型的转换

基本类型转String类型

语法: 将基本类型的值+"" 即可 案例演示:

String类型转基本数据类型

语法:通过基本类型的String的 toXxx方法即可

最新文章

  1. touchstart,touchmove,touchend事件 写法
  2. mentohust 你让我如何说你是好呢?
  3. 如何查看某个查询用了多少TempDB空间
  4. 类模板的static成员
  5. C++全局和静态变量初始化
  6. IOS网络编请求响应之URL结构
  7. Python3 学习第九弹: 模块学习二之文件管理模块
  8. hdoj 1875 畅通工程再续
  9. 常见android手机分辨率(xxhdpi,xhdpi)
  10. sharepoint 2013 更改搜索server组态
  11. 了解SVG
  12. C# Winform中执行post操作并获取返回的XML类型的数据
  13. MacOS10.9平台配置Appium+Java环境
  14. JAVA: 接入YSDK遇到的问题
  15. GPUImage原理
  16. python中的深浅copy
  17. beta2
  18. Android -- DecorView
  19. SpringBoot2 JPA No Identifier specified for entity的解决办法
  20. Docker registry 私有仓库镜像查询、删除、上传、下载 shell

热门文章

  1. WDCP3.3中多PHP版本安装方法,以及安装遇到的问题
  2. Sublime 配置 Markdown,并实时预览
  3. 如何修改centOS7的GUI图形界面
  4. curlPost和curlGet 请求链接
  5. STL sort的comp函数注意事项
  6. Linux MySQL集群搭建之主从复制
  7. 基于NACOS和JAVA反射机制动态更新JAVA静态常量非@Value注解
  8. C/S C# WPF锐浪报表教程
  9. Elasticsearch系列---生产集群的索引管理
  10. Redis进阶之使用Lua脚本自定义Redis命令