Scala数据类型与基础操作符

本文介绍了Scala中的数据类型,包括Any、AnyVal、AnyRef及其子类。讨论了类型转换与Java的相似性,并详细阐述了变量的声明,如val和var的区别。接着,文章深入讲解了Scala的字面量,如整数、字符串和原生字符串的表示,以及字符串插值表达式。最后,概述了Scala中的运算符,包括算术、关系、逻辑和位运算符,并指出Scala中操作符实际上是方法的特性。
摘要由CSDN通过智能技术生成

1.1 类型支持

Scala 与 Java有着相同的数据类型,下表列出了 Scala 支持的数据类型:

数据类型 描述
Byte 8 位有符号补码整数。数值区间为 -128 到 127
Short 16 位有符号补码整数。数值区间为 -32768 到 32767
Int 32 位有符号补码整数。数值区间为 -2147483648 到 2147483647
Long 64 位有符号补码整数。数值区间为 -9223372036854775808 到 9223372036854775807
Float 32 位, IEEE 754 标准的单精度浮点数
Double 64 位 IEEE 754 标准的双精度浮点数
Char 16 位无符号 Unicode 字符, 区间值为 U+0000 到 U+FFFF
String 字符序列
Boolean true 或 false
Unit 表示无值,等同于 Java 中的 void。用作不返回任何结果的方法的结果类型。Unit 只有一个实例值,写成 ()。
Null null 或空引用
Nothing Nothing 类型在 Scala 的类层级的最低端;它是任何其他类型的子类型。
Any Any 是所有其他类的超类
AnyRef AnyRef 类是 Scala 里所有引用类 (reference class) 的基类

类层次结构图如下图所示
在这里插入图片描述
Any是所有类型的超类型,也称为顶级类型。它定义了某些通用的方法,例如equalshashCode,和toStringAny有两个直接子类:AnyValAnyRef

AnyVal代表值类型。有九种预定义的值类型和它们是不可为空:Double,Float,Long,Int,Short,Byte,Char,Unit,和Boolean。Unit是不包含有意义信息的值类型。恰好有一个实例Unit可以宣布从字面上像这样:()。所有函数都必须返回某些内容,因此有时Unit是有用的返回类型。

AnyRef代表参考类型。所有非值类型都定义为引用类型。Scala中的每个用户定义类型都是的子类型AnyRef。如果在Java运行时环境的上下文中使用Scala,则AnyRef与相对应java.lang.Object

1.2 类型转换

Scala的类型转换和java的类型转换基本相同
在这里插入图片描述
For example:

val x: Long = 987654321
val y: Float = x  // 9.8765434E8 (note that some precision is lost in this case)

val face: Char = '☺'
val number: Int = face  // 9786

下面这些将不会通过编译:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sisi.li8

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值