|NO.Z.00005|——————————|BigDataEnd|——|Hadoop&Scala.V05|——|Scala.v05|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是Scala中所有类的超类 |
AnyRef | AnyRef是Scala中所有引用类的超类 |
### --- 常用类型与字面量说明
~~~ Scala和Java一样,有8种数值类型 Byte、Short、Int、Long、Float、Double、Char、Boolean 类型
~~~ 和 Java 不同的是 ,这些类型都是类,有自己的属性和方法。
~~~ Scala并不刻意的区分基本类型和引用类型。
~~~ String 直接引用 Java.lang.String 中的类型,String在需要时能隐式转换为StringOps,
~~~ 因此不需要任何额外的转换,String就可以使用StringOps中的方法。
~~~ 每一种数据类型都有对应的Rich类型,如RichInt、RichChar等,为基本类型提供了更多的有用操作。
~~~ # StringOps。
~~~ toInt等方法都定义在StringLike中;StringOps实现了StringLike "11".toInt
1.max(10)
1.min(10)
1.to(10)
1.until(10)
~~~ # 编译打印
scala> 1.max(10)
res0: Int = 10
scala> 1.min(10)
res1: Int = 1
scala> 1.to(10)
res2: scala.collection.immutable.Range.Inclusive = Range 1 to 10
scala> 1.until(10)
res3: scala.collection.immutable.Range = Range 1 until 10
### --- 整数字面量。整数字面量有两种形式,十进制与十六进制(0X/0x开头)
~~~ 十六进制整数字面量
scala> val a = 0xa
a: Int = 10
scala> val a = 0X00FF
a: Int = 255
scala> val magic = 0xcafe
magic: Int = 51966
~~~ # 十进制整数字面量
scala> val dec1 = 255
dec1: Int = 255
scala> val dec1 = 31
dec1: Int = 31
~~~ # Long类型整数字面量
scala> val magic = 0xcafeL
magic: Long = 51966
scala> val long1 = 255L
long1: Long = 255
~~~ # Short 或 Byte 类型,需要明确声明,否则编译器会推断为Int类型
scala> val little: Short = 32767
little: Short = 32767
scala> val littler: Byte = 127
littler: Byte = 127
### --- 浮点数字面量
~~~ # 十进制数、可选的小数点、可选的e开头的指数
scala> val big = 3.1415926
big: Double = 3.1415926
scala> val bigger = 3.1415926e1
bigger: Double = 31.415926
~~~ # 浮点数字面量以F/f结尾为Float类型;否则为Double类型;
scala> val litte = 0.31415926f
litte: Float = 0.31415927
scala> val litte = 0.31415926e1F
litte: Float = 3.1415925
### --- 字符字面量
scala> val a = 'A'
a: Char = A
~~~ # 用字符的Unicode码来表示。Unicode码前128个字符就是ASCII码
scala> val b = '\u0042'
b: Char = B
~~~ # 转义字符
scala> val mark = '\'
<console>:1: error: unclosed character literal (or use " not ' for string literal)
val mark = '\'
^
scala> val mark = '\\'
mark: Char = \
### --- 字符串字面量
scala> val str = "Hello Scala"
str: String = Hello Scala
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
bdv015-scala
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!