Scala 字面量

简介: Scala 字面量

在 Scala 中,字面量(Literals)是直接表示固定值的表达式。

Scala支持各种类型的字面量,涵盖了数值、字符、字符串、布尔值等。

整型字面量

整型字面量用于 Int 类型,如果表示 Long,可以在数字后面添加 L 或者小写 l 作为后缀。

整型字面量可以是十进制、十六进制和八进制。

  • 十进制:42, 0, -99
  • 十六进制:以0x0X开头,如0x2A, 0x0, 0XFF
  • 八进制:Scala 2.10 之前支持八进制字面量,以 0 开头,但在 Scala 2.10 及之后的版本中,八进制字面量被移除。

val decimal = 42

val hex = 0x2A

浮点型字面量

如果浮点数后面有 f 或者 F 后缀时,表示这是一个 Float 类型,否则就是一个 Double 类型的。

  • 双精度:3.14, -0.001, 1.0e-10
  • 单精度:3.14f, -0.001F

val doubleValue = 3.14

val floatValue = 3.14f

布尔型字面量

布尔型字面量有 true 和 false。

val isScalaFun = true

val isSkyGreen = false

符号字面量

符号字面量被写成: '<标识符> ,这里 <标识符> 可以是任何字母或数字的标识(注意:不能以数字开头)。这种字面量被映射成预定义类 scala.Symbol 的实例。

如:符号字面量 'x 是表达式 scala.Symbol("x") 的简写,符号字面量定义如下:

package scala

final case class Symbol private (name: String) {

  override def toString: String = "'" + name

}

字符字面量

在 Scala 字符变量使用单引号 ' 来定义,如下:

'a' 

'\u0041'

'\n'

'\t'

其中 \ 表示转义字符,其后可以跟 u0041 数字或者 \r\n 等固定的转义字符。

字符串字面量

在 Scala 字符串字面量使用双引号 " 来定义,如下:

"Hello,\nWorld!"

"菜鸟教程官网:www.runoob.com"

  • 普通字符串:"Hello, World!"
  • 多行字符串:使用三重引号 """ 括起来,可以包含换行符和引号。

多行字符串的表示方法

多行字符串用三个双引号来表示分隔符,格式为:""" ... """

实例如下:

val foo = """菜鸟教程

www.runoob.com

www.runnoob.com

以上三个地址都能访问"""

Null 值

Null是一个特殊的字面量,表示所有引用类型的空值。

空值是 scala.Null 类型。

Scala.Null 和 scala.Nothing 是用统一的方式处理 Scala 面向对象类型系统的某些"边界情况"的特殊类型。

Null 类是 null 引用对象的类型,它是每个引用类(继承自AnyRef的类)的子类。Null不兼容值类型。

val nullValue: String = null

Unit

Unit 类型只有一个实例值,用字面量 () 表示,类似于 Java 中的 void。

val unitValue: Unit = ()

实例

以下是使用不同类型字面量的示例代码:

实例

object LiteralsExample {

 def main(args: Array[String]): Unit = {

   // 数值字面量

   val decimal = 42

   val hex = 0x2A

   val doubleValue = 3.14

   val floatValue = 3.14f

 

   // 字符字面量

   val charA = 'A'

   val charNewLine = '\n'

 

   // 字符串字面量

   val greeting = "Hello, World!"

   val multilineString = """This is
                           |a multi-line
                           |string"
"".stripMargin

 

   // 布尔字面量

   val isScalaFun = true

   val isSkyGreen = false

 

   // 特殊字面量

   val nullValue: String = null

   val unitValue: Unit = ()

 

   // 输出示例

   println(s"Decimal: $decimal, Hex: $hex")

   println(s"Double: $doubleValue, Float: $floatValue")

   println(s"Char: $charA, New Line: $charNewLine")

   println(s"Greeting: $greeting")

   println(s"Multiline String: $multilineString")

   println(s"Is Scala Fun: $isScalaFun, Is Sky Green: $isSkyGreen")

   println(s"Null Value: $nullValue, Unit Value: $unitValue")

 }

}

以上代码编译执行结果为:

Decimal: 42, Hex: 42

Double: 3.14, Float: 3.14

Char: A, New Line: 


Greeting: Hello, World!

Multiline String: This is

a multi-line

string

Is Scala Fun: true, Is Sky Green: false

Null Value: null, Unit Value: ()

目录
相关文章
|
9天前
|
Shell API 开发工具
Claude Code 快速上手指南(新手友好版)
AI编程工具卷疯啦!Claude Code凭借任务驱动+终端原生的特性,成了开发者的效率搭子。本文从安装、登录、切换国产模型到常用命令,手把手带新手快速上手,全程避坑,30分钟独立用起来。
2806 16
|
6天前
|
人工智能 开发工具 iOS开发
Claude Code 新手完全上手指南:安装、国产模型配置与常用命令全解
Claude Code 是一款运行在终端环境中的 AI 编程助手,能够直接在命令行中完成代码生成、项目分析、文件修改、命令执行、Git 管理等开发全流程工作。它最大的特点是**任务驱动、终端原生、轻量高效、多模型兼容**,无需图形界面、不依赖 IDE 插件,能够深度融入开发者日常工作流。
2400 5
|
21天前
|
人工智能 JSON 供应链
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
LucianaiB分享零成本畅用JVS Claw教程(学生认证享7个月使用权),并开源GeoMind项目——将JVS改造为科研与产业地理情报可视化AI助手,支持飞书文档解析、地理编码与腾讯地图可视化,助力产业关系图谱构建。
23558 14
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
|
8天前
|
人工智能 JSON BI
DeepSeek V4-Pro 接入 Claude Code 完全实战:体验、测试与关键避坑指南
Claude Code 作为当前主流的 AI 编程辅助工具,凭借强大的代码理解、工程执行与自动化能力深受开发者喜爱,但原生模型的使用成本相对较高。为了在保持能力的同时进一步降低开销,不少开发者开始寻找兼容度高、价格更友好的替代模型。DeepSeek V4 系列的发布带来了新的选择,该系列包含 V4-Pro 与 V4-Flash 两款模型,并提供了与 Anthropic 完全兼容的 API 接口,理论上只需简单修改配置,即可让 Claude Code 无缝切换为 DeepSeek 引擎。
2101 2
|
2天前
|
人工智能 Linux BI
国内用 Claude Code 终于不用翻墙了:一行命令搞定,自动接 DeepSeek
JeecgBoot AI专题研究 一键脚本:Claude Code + JeecgBoot Skills + DeepSeek 全平台接入 一行命令装好 Claude Code + JeecgBoot Skills + DeepSeek 接入,无需翻墙使用 Claude Code,支持 Wind
1385 1
国内用 Claude Code 终于不用翻墙了:一行命令搞定,自动接 DeepSeek
|
15天前
|
人工智能 缓存 Shell
Claude Code 全攻略:命令大全 + 实战工作流(完整版)
Claude Code 是一款运行在终端环境下的 AI 编码助手,能够直接在项目目录中理解代码结构、编辑文件、执行命令、执行开发计划,并支持持久化记忆、上下文压缩、后台任务、多模型切换等专业能力。对于日常开发、项目维护、快速重构、代码审查等场景,它可以大幅减少手动操作、提升编码效率。本文从常用命令、界面模式、核心指令、记忆机制、图片处理、进阶工作流等维度完整说明,帮助开发者快速上手并稳定使用。
3491 6
|
7天前
|
人工智能 安全 开发工具
Claude Code 官方工作原理与使用指南
Claude Code 不是传统代码补全工具,而是 Anthropic 推出的终端 AI 代理,具备代理循环、双驱动架构(模型+工具)、全局项目感知、6 种权限模式等核心能力,本文基于官方文档系统解析其工作原理与高效使用技巧。
1127 0

热门文章

最新文章