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 |
布尔类型,值为 true 或 false |
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
import scala.util.{Try}
object DataObject {
def main(args:Array[String]):Unit = {
// 基本数据类型整形
// 8位
val byteValue: Byte = -128
// 16位
val shortValue: Short = 32767
// 32位置
val intval: Int = 2147483647
// 64位置
val longValue: Long =9999999999999999L
// 打印输出
println(byteValue)
println(shortValue)
println(intval)
println(longValue)
//浮点型
// 32位
val floatValue: Float = 0.333333333333333f
// 64位
val doublevalue: Double = 0.33333666699999988877
println(floatValue)
println(doublevalue)
//字符类型
// 单一字符 单引号包围 可变
val charvalue:Char = 'A'
// 字符序列 双引号包围 不能修改其中的单个字符
val stirngvalue:String = "abcdefg"
println(charvalue)
println(stirngvalue)
//布尔值
val boolvalue:Boolean = true
val boolvalue2:Boolean = false
print(boolvalue); println(boolvalue2)
//集合类型
// 不可变链表
val listValue: List[Any] = List(1,2,3,4,"ldsx")
// 不可变集合
val setvalue:Set[Int] = Set(1,1,1,1,2,3,33)
// 不可变键值对集合
val mapvalue: Map[Any,Any] = Map("LDSX"->123,123->"6666","bl"->654)
// 可变数组
val arrayvalue:Array[Int] = Array(6584,456,555)
// 元组 可包含不同类型元素的不可变容器
val tuplevalue:(Any) = (1,3,4,5)
// 代表有可能含有值或为空的容器
val optionvalue:Option[String] = Some("AS WE KNOW")
// 表示两种可能的值类型之一
val eithervalue:Either[Any,Any] = Right(42)
// 处理操作结果可能成功或失败的容器
val tryvalue:Try[Int] = Try(6)
println(listValue)
println(setvalue)
println(mapvalue)
println(arrayvalue)
println(tuplevalue)
println(optionvalue)
println(eithervalue)
println(tryvalue)
//特殊类型
//表示无值
val unitvalue: Unit = ()
// 单例对象,表示所有引用类型的空值
val nullvalue: String= null
println(unitvalue)
println(nullvalue)
}
}
打印显示
-128
32767
2147483647
9999999999999999
0.33333334
0.33333666699999986
A
abcdefg
truefalse
List(1, 2, 3, 4, ldsx)
Set(1, 2, 3, 33)
Map(LDSX -> 123, 123 -> 6666, bl -> 654)
[I@4de8b406
(1,3,4,5)
Some(AS WE KNOW)
Right(42)
Success(6)
()
null