字面量(Literal)是指程序中直接表示常量值的固定值。在 Scala 中,字面量可以表示各种基本类型的数据,如整数、浮点数、字符、布尔值和字符串等。Scala 支持多种不同类型的字面量,能方便地直接表示各种常见的常量值。


📖 目录

  1. 整数字面量
  2. 浮点数字面量
  3. 字符字面量
  4. 布尔字面量
  5. 字符串字面量
  6. 多行字符串字面量
  7. 原始字符串字面量
  8. 符号字面量
  9. 引用类型字面量
  10. 字面量表示法和后缀
  11. 参考资料

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. 浮点数字面量

浮点数字面量用于表示带小数点的数字,支持 FloatDouble 类型。可以通过后缀 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. 布尔字面量

布尔字面量用于表示逻辑值 truefalse

示例:

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 中方便地表示常见的基本数据类型、字符串、符号等,并且充分利用其灵活的语法来编写简洁、易读的代码。