Scala 数据类型 分析

Scala 数据类型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z100nPaJ-1634560887311)(C:\Users\482426\AppData\Roaming\Typora\typora-user-images\image-20211018192353763.png)]

1.

Scala中的一切数据都是对象,都是Any的子类

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-abuoSx7Z-1634560887313)(C:\Users\482426\AppData\Roaming\Typora\typora-user-images\image-20211018193723313.png)]

这个Any的用途非常的窄,因为它太父类了,没什么基础的方法,它比object(Java中所有引用数据类型的父类,基本数据类型不存在父类的说法)的等级还要高

object Test06_Type {
  def main(args: Array[String]): Unit = {
    // 10 就是一个int类型的对象,Scala中的一切数据都是对象
    val i = 10

    //scala 把所有的代码都当作一个代码快来处理
    //不标记大括号的时候,都以一行作为一个代码块,一行的话,代码块就可以省略掉,所以它后面是没有分号的
    //多行作为同一个代码块,不把他来拆分开来处理的话,就把他给括起来
    //括起来之后有一个潜在的逻辑,就是一个统一的代码块,会运行,运行完了之后,以最后一行值的结果作为返回值
    //表示返回时,不需要return了
    val unit = {
      println("hello")
      20
    }
    println(unit)

  }
}

2.

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

Scala中的StringOps是基本数据类型,但是更本没有什么人用,我们就也不用。

都是使用Java里面的String,这里的String是引用数据类型。

3.

Scala数据类型任然遵守,低精度的值类型向高精度值类型,自动转换(隐式转换)

例如,int在进行计算的时候会自动转换为long值的,也可以再转换为float,double。

上图中实线的箭头表示子类和父类的关系,虚线表示自动类型转换。在图中都是描述得很清楚。

4.

Unit:对应Java中的void,用于方法返回值的位置,表示方法没有返回值,Unit是一个数据类型,只有一个对象就是()。

void不是数据类型,只是一个关键字,在Java中不是对象。

5.

Null是一个类型,只有一个对象就是null。它是所有引用类型(AnyRef)的子类。

6.

Nothing,是所有数据类型共同的子类,主要用在一个函数没有明确返回值的时候

整型分类

数据类型描述
Byte [1]8位有符号补码整数。数值区间为 -128 到 127
Short [2]16位有符号补码整数。数值区间为 -32768 到 32767
Int [4]32位有符号补码整数。数值区间为 -2147483648 到 2147483647
Long [8]64位有符号补码整数。数值区间为 -9223372036854775808 到 9223372036854775807 = 2的(64-1)次方-1

浮点型分类

数据类型描述
Float [4]32 位, IEEE 754标准的单精度浮点数
Double [8]64 位 IEEE 754标准的双精度浮点数

Float(32位)表示的范围比long(64位)值范围更大一点,因为它用的是科学计数法

字符类型

//char  char是无符号的  char的范围是16
    //(1)字符常量是用单引号 ' ' 括起来的单个字符。
    val c: Char = 97
    println(c)

    val c1 = 'b'

    //(2)\t :一个制表位,实现对齐的功能

    val c2 = '\t'
    println(c2 + 0)

    //(3)\n :换行符
    val c3 = '\n'
    println(c3 + 0)

    //(4)\\ :表示\
    val c4 = '\\'
    println(c4 + 0)

    //(5)\" :表示"
    val c5 = '\"'
    println(c5 + 0)

布尔类型

// 布尔类型
    val bo1 = true
    val bo2 = false
//    val bo3:Boolean = null  编译的时候会报错
    //null只能是引用数据类型的子类,而Boolean类型是在基本数据类型里面
    //所有的基本数据类型都不能用null来表示,只能用nothing来表示,但是用nothing来表示并没有什么意义

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值