Scala 数据类型

简介: Scala 数据类型

Scala 支持的主要数据类型包括基本类型、集合类型、和特殊类型。

下表列出了 Scala 支持的数据类型:

类型类别 数据类型 描述 Scala标准库中的实际类
基本类型 Byte 8位有符号整数,数值范围为 -128 到 127 scala.Byte
基本类型 Short 16位有符号整数,数值范围为 -32768 到 32767 scala.Short
基本类型 Int 32位有符号整数,数值范围为 -2147483648 到 2147483647 scala.Int
基本类型 Long 64位有符号整数,数值范围为 -9223372036854775808 到 9223372036854775807 scala.Long
基本类型 Float 32位IEEE 754单精度浮点数 scala.Float
基本类型 Double 64位IEEE 754双精度浮点数 scala.Double
基本类型 Char 16位无符号Unicode字符,数值范围为 U+0000 到 U+FFFF scala.Char
基本类型 String 字符串类型,表示字符序列 java.lang.String
基本类型 Boolean 布尔类型,值为 truefalse scala.Boolean
集合类型 List 不可变链表 scala.collection.immutable.List
集合类型 Set 不可变集合 scala.collection.immutable.Set
集合类型 Map 不可变键值对集合 scala.collection.immutable.Map
集合类型 Array 可变数组 scala.Array
集合类型 Tuple 可包含不同类型元素的不可变容器 scala.TupleN
集合类型 Option 代表有可能含有值或为空的容器 scala.Option
集合类型 Either 表示两种可能的值类型之一 scala.util.Either
集合类型 Try 处理操作结果可能成功或失败的容器 scala.util.Try
特殊类型 Unit 表示无值,相当于Java中的 void scala.Unit
特殊类型 Null 单例对象,表示所有引用类型的空值 scala.Null
特殊类型 Nothing 表示无返回值类型,是所有类型的子类型 scala.Nothing
特殊类型 Any 所有类型的超类型 scala.Any
特殊类型 AnyRef 所有引用类型的超类型,等价于Java中的 Object scala.AnyRef

在 Scala 中,所有数据类型都是对象。

Scala 没有像 Java 中的原生类型(primitive types)那样的概念。尽管 Scala 的基本数据类型(如 Int、Double 等)在语法上看起来类似于 Java 的原生类型,但它们实际上是对象。这意味着你可以在这些类型上调用方法。

例如,Int 类型在 Scala 中实际上是 scala.Int 类的一个实例,而 scala.Int 是一个最终类,继承自 AnyVal。AnyVal 是 Scala 中的一个特殊类,表示值类型。

下面是一个完整的 Scala 程序,展示了各种数据类型的使用:

DataTypeExamples.scala 文件代码:

object DataTypeExamples {

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

   // 基本类型

   val byteValue: Byte = 127

   val shortValue: Short = 32767

   val intValue: Int = 2147483647

   val longValue: Long = 9223372036854775807L

   val floatValue: Float = 3.14f

   val doubleValue: Double = 3.141592653589793

   val charValue: Char = 'A'

   val stringValue: String = "Hello, Scala!"

   val booleanValue: Boolean = true


   // 集合类型

   val listValue: List[Int] = List(1, 2, 3)

   val setValue: Set[String] = Set("Scala", "Java", "Python")

   val mapValue: Map[String, Int] = Map("one" -> 1, "two" -> 2, "three" -> 3)

   val arrayValue: Array[Int] = Array(4, 5, 6)

   val tupleValue: (Int, String, Boolean) = (42, "Answer", true)

   val optionValue: Option[String] = Some("I am here")

   val eitherValue: Either[String, Int] = Right(42)

   val tryValue: Try[Int] = Try(10 / 2)


   // 特殊类型

   val unitValue: Unit = ()

   val nullValue: String = null

   val nothingValue: Nothing = throw new RuntimeException("Nothing value")


   // 输出所有值

   println(s"Byte Value: $byteValue")

   println(s"Short Value: $shortValue")

   println(s"Int Value: $intValue")

   println(s"Long Value: $longValue")

   println(s"Float Value: $floatValue")

   println(s"Double Value: $doubleValue")

   println(s"Char Value: $charValue")

   println(s"String Value: $stringValue")

   println(s"Boolean Value: $booleanValue")

 

   println(s"List Value: $listValue")

   println(s"Set Value: $setValue")

   println(s"Map Value: $mapValue")

   println(s"Array Value: ${arrayValue.mkString(", ")}")

   println(s"Tuple Value: $tupleValue")

   println(s"Option Value: $optionValue")

   println(s"Either Value: $eitherValue")

   println(s"Try Value: $tryValue")

 

   println(s"Unit Value: $unitValue")

   println(s"Null Value: $nullValue")

 

   // nothingValue is not printed because it throws an exception

 }

}

使用 scalac 编译器进行编译,使用 scala 命令运行:

scalac DataTypeExamples.scala

scala DataTypeExamples

输出结果:

Byte Value: 127

Short Value: 32767

Int Value: 2147483647

Long Value: 9223372036854775807

Float Value: 3.14

Double Value: 3.141592653589793

Char Value: A

String Value: Hello, Scala!

Boolean Value: true

List Value: List(1, 2, 3)

Set Value: Set(Scala, Java, Python)

Map Value: Map(one -> 1, two -> 2, three -> 3)

Array Value: 4, 5, 6

Tuple Value: (42,Answer,true)

Option Value: Some(I am here)

Either Value: Right(42)

Try Value: Success(5)

Unit Value: ()

Null Value: null

目录
相关文章
|
11天前
|
存储 人工智能 弹性计算
阿里云弹性计算_加速计算专场精华概览 | 2024云栖大会回顾
2024年9月19-21日,2024云栖大会在杭州云栖小镇举行,阿里云智能集团资深技术专家、异构计算产品技术负责人王超等多位产品、技术专家,共同带来了题为《AI Infra的前沿技术与应用实践》的专场session。本次专场重点介绍了阿里云AI Infra 产品架构与技术能力,及用户如何使用阿里云灵骏产品进行AI大模型开发、训练和应用。围绕当下大模型训练和推理的技术难点,专家们分享了如何在阿里云上实现稳定、高效、经济的大模型训练,并通过多个客户案例展示了云上大模型训练的显著优势。
|
15天前
|
存储 人工智能 调度
阿里云吴结生:高性能计算持续创新,响应数据+AI时代的多元化负载需求
在数字化转型的大潮中,每家公司都在积极探索如何利用数据驱动业务增长,而AI技术的快速发展更是加速了这一进程。
|
6天前
|
并行计算 前端开发 物联网
全网首发!真·从0到1!万字长文带你入门Qwen2.5-Coder——介绍、体验、本地部署及简单微调
2024年11月12日,阿里云通义大模型团队正式开源通义千问代码模型全系列,包括6款Qwen2.5-Coder模型,每个规模包含Base和Instruct两个版本。其中32B尺寸的旗舰代码模型在多项基准评测中取得开源最佳成绩,成为全球最强开源代码模型,多项关键能力超越GPT-4o。Qwen2.5-Coder具备强大、多样和实用等优点,通过持续训练,结合源代码、文本代码混合数据及合成数据,显著提升了代码生成、推理和修复等核心任务的性能。此外,该模型还支持多种编程语言,并在人类偏好对齐方面表现出色。本文为周周的奇妙编程原创,阿里云社区首发,未经同意不得转载。
|
11天前
|
人工智能 运维 双11
2024阿里云双十一云资源购买指南(纯客观,无广)
2024年双十一,阿里云推出多项重磅优惠,特别针对新迁入云的企业和初创公司提供丰厚补贴。其中,36元一年的轻量应用服务器、1.95元/小时的16核60GB A10卡以及1元购域名等产品尤为值得关注。这些产品不仅价格亲民,还提供了丰富的功能和服务,非常适合个人开发者、学生及中小企业快速上手和部署应用。
|
6天前
|
人工智能 自然语言处理 前端开发
用通义灵码,从 0 开始打造一个完整APP,无需编程经验就可以完成
通义灵码携手科技博主@玺哥超carry 打造全网第一个完整的、面向普通人的自然语言编程教程。完全使用 AI,再配合简单易懂的方法,只要你会打字,就能真正做出一个完整的应用。本教程完全免费,而且为大家准备了 100 个降噪蓝牙耳机,送给前 100 个完成的粉丝。获奖的方式非常简单,只要你跟着教程完成第一课的内容就能获得。
|
1天前
|
云安全 存储 弹性计算
|
22天前
|
自然语言处理 数据可视化 前端开发
从数据提取到管理:合合信息的智能文档处理全方位解析【合合信息智能文档处理百宝箱】
合合信息的智能文档处理“百宝箱”涵盖文档解析、向量化模型、测评工具等,解决了复杂文档解析、大模型问答幻觉、文档解析效果评估、知识库搭建、多语言文档翻译等问题。通过可视化解析工具 TextIn ParseX、向量化模型 acge-embedding 和文档解析测评工具 markdown_tester,百宝箱提升了文档处理的效率和精确度,适用于多种文档格式和语言环境,助力企业实现高效的信息管理和业务支持。
3965 5
从数据提取到管理:合合信息的智能文档处理全方位解析【合合信息智能文档处理百宝箱】
|
11天前
|
算法 安全 网络安全
阿里云SSL证书双11精选,WoSign SSL国产证书优惠
2024阿里云11.11金秋云创季活动火热进行中,活动月期间(2024年11月01日至11月30日)通过折扣、叠加优惠券等多种方式,阿里云WoSign SSL证书实现优惠价格新低,DV SSL证书220元/年起,助力中小企业轻松实现HTTPS加密,保障数据传输安全。
534 3
阿里云SSL证书双11精选,WoSign SSL国产证书优惠
|
10天前
|
数据采集 人工智能 API
Qwen2.5-Coder深夜开源炸场,Prompt编程的时代来了!
通义千问团队开源「强大」、「多样」、「实用」的 Qwen2.5-Coder 全系列,致力于持续推动 Open Code LLMs 的发展。
|
17天前
|
安全 数据建模 网络安全
2024阿里云双11,WoSign SSL证书优惠券使用攻略
2024阿里云“11.11金秋云创季”活动主会场,阿里云用户通过完成个人或企业实名认证,可以领取不同额度的满减优惠券,叠加折扣优惠。用户购买WoSign SSL证书,如何叠加才能更加优惠呢?
999 3