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 |
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.33333666699999988877println(floatValue)println(doublevalue)//字符類型// 單一字符 單引號包圍 可變val charvalue:Char = 'A'// 字符序列 雙引號包圍 不能修改其中的單個字符val stirngvalue:String = "abcdefg"println(charvalue)println(stirngvalue)//布爾值val boolvalue:Boolean = trueval boolvalue2:Boolean = falseprint(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= nullprintln(unitvalue)println(nullvalue)}
}
打印顯示
-128
32767
2147483647
9999999999999999
0.33333334
0.33333666699999986
A
abcdefg
truefalseList(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