字面量(Literal)是指程序中直接表示常量值的固定值。在 Scala 中,字面量可以表示各种基本类型的数据,如整数、浮点数、字符、布尔值和字符串等。Scala 支持多种不同类型的字面量,能方便地直接表示各种常见的常量值。
📖 目录
1. 整数字面量
在 Scala 中,整数字面量可以直接表示整数值,并且可以指定不同的进制(如十进制、二进制、八进制和十六进制)。此外,Scala 允许使用下划线分隔数字,以提高可读性。
示例:
val decimal: Int = 12345 // 十进制整数
val binary: Int = 0b1101 // 二进制整数
val octal: Int = 0o123 // 八进制整数
val hex: Int = 0x1A3F // 十六进制整数
val readable: Int = 1_000_000 // 使用下划线分隔数字,提升可读性
2. 浮点数字面量
浮点数字面量用于表示带小数点的数字,支持 Float
和 Double
类型。可以通过后缀 f
来表示 Float
类型,默认是 Double
类型。
示例:
val pi: Double = 3.14159 // 默认类型为 Double
val e: Float = 2.718f // 使用 f 后缀表示 Float 类型
3. 字符字面量
字符字面量用于表示单个字符。字符字面量使用单引号 ''
来括起来。
示例:
val letter: Char = 'A'
val digit: Char = '9'
val symbol: Char = '$'
4. 布尔字面量
布尔字面量用于表示逻辑值 true
或 false
。
示例:
val isScalaFun: Boolean = true
val isJavaBetter: Boolean = false
5. 字符串字面量
字符串字面量用于表示一串字符,字符串字面量用双引号 ""
括起来。
示例:
val greeting: String = "Hello, Scala!"
val name: String = "Alice"
val multiLineString: String = "This is a\nmulti-line string."
6. 多行字符串字面量
Scala 允许使用多行字符串字面量来表示跨越多行的字符串。多行字符串字面量由三个双引号 """
包围,可以方便地处理带换行的文本。
示例:
val multiLineString: String =
"""
|This is a multi-line string.
|You can write more lines here.
|Scala supports this feature.
""".stripMargin
println(multiLineString)
这里使用 stripMargin
方法来去除每行前面的管道符号 |
,这种做法有助于提高代码的可读性。
7. 原始字符串字面量
Scala 也支持原始字符串字面量,它们不会对转义字符进行解析,允许直接包含特殊字符(如换行、制表符等)。
示例:
val rawString: String = raw"This is a raw string with a newline: \n"
println(rawString) // 输出: This is a raw string with a newline: \n
8. 符号字面量
符号字面量是一种特殊的字面量,通常用于标识符和模式匹配中。符号字面量以冒号 :
开头,并且不需要引号。例如,可以通过符号字面量来表示类的名称或方法的名称。
示例:
val symbol: Symbol = 'Hello
val anotherSymbol: Symbol = 'World
9. 引用类型字面量
引用类型字面量表示类、对象等引用类型实例。引用类型字面量通常是通过实例化类或对象来创建的。
示例:
val person = new Person("Alice", 25)
10. 字面量表示法和后缀
Scala 提供了一些字面量后缀,用于表示不同类型。例如:
f
:表示浮点数Float
L
:表示长整数Long
D
:表示双精度浮点数Double
#
:表示符号类型(例如,符号字面量)
示例:
val bigNumber: Long = 123456789012345L
val pi: Float = 3.14f
val maxDouble: Double = 1.7976931348623157E308
11. 参考资料
通过掌握这些字面量,你可以在 Scala 中方便地表示常见的基本数据类型、字符串、符号等,并且充分利用其灵活的语法来编写简洁、易读的代码。
发表回复